将额外购买的 IP 绑定到辅助网卡后,还需要确认辅助网卡已在服务器操作系统中生效。本文介绍 Linux 服务器的检查、配置和故障排查方法。
说明:在普通映射模式下,服务器内部通常只能看到辅助网卡的私网 IP,看不到额外购买的 IP。这是正常现象。请勿将额外购买的 IP 直接添加到网卡配置中。
开始前,请确认以下网络和访问配置信息:
下文使用以下示例,请根据实际环境替换:
| 配置项 | 示例值 |
|---|---|
| 主网卡 | eth0 |
| 辅助网卡 | eth1 |
| 辅助网卡私网 IP | 192.168.10.20/24 |
| 子网网关 | 192.168.10.253 |
登录服务器,执行:
ip addr
找到辅助网卡,例如 eth1,重点检查:
state UP。再检查路由:
ip route
route -n
正常情况下,应当存在辅助网卡所在子网的直连路由。较新的系统通常会自动识别网卡并获取地址;如果网卡已经是 UP 且地址、路由均正确,可直接跳到“配置业务服务”。
适用于使用 NetworkManager 的较新 Linux 发行版。
查看连接名称:
nmcli connection show
如果辅助网卡已有连接配置,可启用自动获取地址:
sudo nmcli connection modify "辅助网卡连接名" \
ipv4.method auto \
connection.autoconnect yes
sudo nmcli connection up "辅助网卡连接名"
如果系统中还没有对应连接,可创建:
sudo nmcli connection add \
type ethernet \
ifname eth1 \
con-name secondary-eth1 \
ipv4.method auto \
connection.autoconnect yes
sudo nmcli connection up secondary-eth1
适用于使用 /etc/sysconfig/network-scripts/ 的系统。创建或修改 /etc/sysconfig/network-scripts/ifcfg-eth1:
DEVICE=eth1
TYPE=Ethernet
BOOTPROTO=dhcp
ONBOOT=yes
DEFROUTE=no
DEFROUTE=no 用于避免辅助网卡替换主网卡的默认出口。保存后,使用当前系统支持的方式重载连接:
sudo nmcli connection reload
sudo nmcli connection up eth1
警告:修改网络配置可能导致远程连接中断。操作前请备份原配置,并确保可以通过控制台终端恢复网络。
额外购买的 IP 与辅助网卡私网 IP 在平台侧进行映射。服务器上的业务程序应监听以下任意一种地址:
0.0.0.0:监听服务器上的所有 IPv4 地址。192.168.10.20。不要只监听 127.0.0.1,也不要在普通映射模式下直接监听额外购买的 IP。
检查端口监听状态:
sudo ss -lntup
例如,Web 服务需要确认监听了 0.0.0.0:80、0.0.0.0:443,或者辅助网卡私网 IP 对应的端口。
同时检查辅助网卡的访问规则和服务器系统防火墙。以 firewalld 为例,放行 HTTP 和 HTTPS:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
如需开放自定义端口,例如 TCP 8080:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
请仅开放业务必需端口,并尽量限制允许访问的来源地址。
仅用于外部访问服务器的常见 Web 或 SSH 场景,在网卡和系统路由已经自动配置正确时,通常无需额外修改默认路由。
如果服务器存在多张网卡,并出现请求可以到达但响应失败、响应从错误网卡发出,或者业务要求指定该地址作为公网出口,则需要按照辅助网卡私网 IP 配置策略路由:
sudo ip -4 route add default via 192.168.10.253 dev eth1 table 1001
sudo ip -4 rule add from 192.168.10.20 lookup 1001
检查配置:
ip -4 route show table 1001
ip -4 rule show
策略路由的含义是:源地址为 192.168.10.20 的流量,通过 eth1 和对应网关发出,从而保持请求与响应路径一致。
注意:使用 ip 命令临时添加的策略路由会在服务器重启后丢失。验证无误后,请根据当前 Linux 发行版的网络管理方式将其设置为永久配置。
ip addr show eth1
ip route
sudo ss -lntup
从另一台可以连接互联网的设备访问:
curl -I http://额外购买的IP
curl -kI https://额外购买的IP
如果测试 SSH,可执行:
ssh 用户名@额外购买的IP
如已配置策略路由,可指定辅助网卡私网 IP 测试公网出口:
curl --interface 192.168.10.20 https://ifconfig.me
返回结果应当是与该私网 IP 对应的额外购买的 IP。
ip link show eth1
ip addr show eth1
如果显示 state DOWN,请先启用网卡并检查系统网络配置。
sudo ss -lntup
确认服务没有只监听 127.0.0.1 或主网卡地址。
ip route
ip rule
ip route show table 1001
sudo tcpdump -ni eth1
也可以仅捕获指定业务端口,例如:
sudo tcpdump -ni eth1 tcp port 80
确认辅助网卡访问规则、网络访问控制列表、系统防火墙和应用自身的访问限制均已放行。
ip addr 中看不到额外购买的 IP?普通映射模式下,额外购买的 IP 不会直接显示在操作系统中。服务器只需要正确配置辅助网卡的私网 IP。
多网卡环境中可能出现请求和响应路径不一致。请检查默认路由;必要时,以辅助网卡私网 IP 为源地址配置策略路由。
请确认辅助网卡配置了开机自动启用,并将经过验证的路由规则写入当前系统支持的永久网络配置,而不是仅使用临时命令。