当前位置:首页 > 虚拟主机 > 正文

Linux服务器只给一个IP地址吗?一台服务器配置多个IP地址

在Linux服务器环境中,IP地址的配置并非简单的“给一个地址”即可,而是涉及网络接口、路由表、DNS解析以及持久化配置等多个层面的协同工作,现代Linux发行版(如Ubuntu 18.04+、CentOS 7+、Debian 9+)主要采用Netplan(基于YAML)或NetworkManager作为网络配置管理工具,而较老的系统或特定场景下仍使用传统的ifcfg脚本,以下将详细说明如何为Linux服务器配置静态IP地址。

确定网络接口名称

在开始配置之前,首先需要明确服务器当前的网络接口名称,随着系统演进,接口命名规则已从传统的eth0、eth1转变为基于硬件位置的预测性命名,如ens33、enp0s3等。

可以通过以下命令查看当前活跃的网络接口:

ip addr show # 或者 ip link show

输出结果中,lo是本地回环接口,其他以e、en、wl等开头的通常是物理或虚拟网卡,假设我们要配置的网卡名为ens33。

使用Netplan配置(适用于Ubuntu/Debian新版)

Netplan是Ubuntu 18.04及更高版本、以及部分现代Debian衍生版默认的网络配置工具,它使用YAML格式的文件进行配置,配置文件通常位于/etc/netplan/目录下。

  1. 查找配置文件

    进入目录并列出文件:

    ls /etc/netplan/

    通常会有一个类似00-installer-config.yaml或50-cloud-init.yaml的文件。

  2. 编辑配置文件

    使用文本编辑器(如nano或vim)打开该文件,注意YAML对缩进非常敏感,必须使用空格而非Tab。

    以下是一个配置静态IP的示例:

    network: version: 2 ethernets: ens33: # 替换为你的实际网卡名称 dhcp4: no # 关闭DHCP自动获取 dhcp6: no addresses: 192.168.1.100/24 # IP地址及子网掩码(CIDR格式,/24代表255.255.255.0) routes: to: default via: 192.168.1.1 # 默认网关 nameservers: addresses: 8.8.8.8 # DNS服务器1 114.114.114.114 # DNS服务器2
  3. 应用配置

    保存文件后,执行以下命令使配置生效:

    sudo netplan apply

    如果配置有误,可以使用sudo netplan try,它会在一定时间内等待确认,若超时未确认则自动回滚,防止断网。

使用NetworkManager命令行工具(nmcli)

nmcli是NetworkManager的命令行接口,适用于大多数现代Linux发行版(包括CentOS/RHEL 8+、Fedora、Ubuntu等),这种方法不依赖特定配置文件,直接操作网络管理器。

  1. 查看连接名称

    nmcli connection show

    假设连接名称为System ens33。

  2. 修改IPv4配置

    将IP地址设置为静态,并指定网关和DNS:

    Linux服务器只给一个IP地址吗?一台服务器配置多个IP地址 第1张

    # 设置IP地址和子网 sudo nmcli connection modify "System ens33" ipv4.addresses 192.168.1.100/24 # 设置默认网关 sudo nmcli connection modify "System ens33" ipv4.gateway 192.168.1.1 # 设置DNS服务器 sudo nmcli connection modify "System ens33" ipv4.dns "8.8.8.8 114.114.114.114" # 将方法从auto(DHCP)改为manual(静态) sudo nmcli connection modify "System ens33" ipv4.method manual
  3. 重新激活连接

    sudo nmcli connection up "System ens33"

传统ifcfg脚本(适用于CentOS/RHEL 7及更早版本)

在CentOS 7、RHEL 7等系统中,网络配置通常位于/etc/sysconfig/network-scripts/目录下,文件名为ifcfg-<接口名>。

  1. 编辑配置文件

    sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
  2. 修改关键参数

    确保文件内容包含以下设置:

    参数 示例值 说明
    BOOTPROTO static 使用静态IP,而非dhcp
    ONBOOT yes 开机自动启动网卡
    IPADDR 168.1.100 指定的IP地址
    NETMASK 255.255.0 子网掩码
    GATEWAY 168.1.1 默认网关
    DNS1 8.8.8 主DNS服务器
  3. 重启网络服务

    sudo systemctl restart network

验证配置是否生效

无论使用哪种方法,配置完成后都应进行验证,确保网络连通性正常。

  1. 检查IP地址分配

    确认输出中包含了你设置的IP地址。

    Linux服务器只给一个IP地址吗?一台服务器配置多个IP地址 第2张

  2. 测试网关连通性

    ping -c 4 192.168.1.1
  3. 测试外网连通性及DNS解析

    ping -c 4 8.8.8.8 ping -c 4 www.baidu.com

    如果ping 8.8.8.8通但ping www.baidu.com不通,说明IP和网关配置正确,但DNS配置有误。

  4. 常见问题排查

    • 配置后无法上网:检查网关是否正确,以及防火墙(iptables/firewalld/ufw)是否放行了相关端口。
    • IP冲突:确保局域网内没有其他设备使用相同的IP地址。
    • 配置不生效:检查配置文件语法(特别是Netplan的缩进),或重启网络服务/服务器。


    相关问题与解答

    问题1:如果我在配置静态IP时忘记了当前的网关地址,该如何查找?

    解答:

    在配置静态IP之前,如果系统之前是通过DHCP获取的网络,你可以临时保留DHCP开启状态,或者通过以下命令查看当前的路由表来找到网关:

    ip route show

    在输出结果中,查找包含default via的行,如果输出显示default via 192.168.1.1 dev ens33,那么168.1.1就是你的网关地址,找到后,记下该地址,然后在配置文件中将其填入GATEWAY或via字段。

    问题2:配置静态IP后,服务器重启网络服务导致SSH连接断开,如何恢复?

    解答:

    这种情况通常是因为配置错误导致网络接口未能正确启动,或者IP地址与SSH客户端所在网段不匹配,恢复方法如下:

    1. 使用控制台访问:通过云服务商提供的VNC控制台、物理服务器的本地显示器或IPMI/iDRAC等带外管理工具登录服务器。
    2. 检查配置:查看网络配置文件是否有语法错误。
    3. 临时恢复DHCP:如果无法立即修正静态IP,可以临时将配置改回DHCP(BOOTPROTO=dhcp或dhcp4: yes),重启网络服务获取临时IP,然后通过控制台登录修正静态IP配置。
    4. 检查防火墙:确保防火墙规则允许SSH(默认端口22)的连接。

    Linux服务器只给一个IP地址吗?一台服务器配置多个IP地址 第3张

0