如果我的网络接口绑定了多个 IP 地址,我可以设置服务器使用哪个接口上的 IP 地址吗?它似乎设置为使用我添加到它的第一个 IP 地址。
信息:OpenVZ 上的 Ubuntu
答案1
各种软件都允许您指定使用哪个接口。但总体而言,所使用的接口由您的路由规则控制。
您可以使用以下命令查看路由规则:netstat -nr
两个接口是否位于同一子网中?您可以确保您的路由规则将所有流量导向您想要的接口。
答案2
正确的术语是多宿主设备。您的一个网络接口卡有多个 IP 地址,换句话说,您的网络接口卡是 1 个以太网 RJ45 插孔,并连接一根以太网电缆。但是,它有 4 个 IP 地址。是的,您可以这样做,第一个 IP 地址是主 IP 地址,其余 IP 地址称为别名。
/sbin/ifconfig -a
你应该看到类似这样的内容:
eth1 Link encap:Ethernet HWaddr 00:50:56:BC:30:FB
inet addr:10.100.8.31 Bcast:10.100.15.255 Mask:255.255.240.0
......
......
......
RX bytes:84421113749 (78.6 GiB) TX bytes:2094592237803 (1.9 TiB)
eth1:1 Link encap:Ethernet HWaddr 00:50:56:BC:30:FB
inet addr:10.100.8.200 Bcast:10.100.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1:2 Link encap:Ethernet HWaddr 00:50:56:BC:30:FB
inet addr:10.100.8.201 Bcast:10.100.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1:3 Link encap:Ethernet HWaddr 00:50:56:BC:30:FB
inet addr:10.100.8.202 Bcast:10.100.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1:4 Link encap:Ethernet HWaddr 00:50:56:BC:30:FB
inet addr:10.100.8.203 Bcast:10.100.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 是我的接口,其 IP 地址为 10.100.8.31,但是,这个昵称分配了 4 个别名 IP 地址,它们显示为 eth1:1、eth1:2...
它们有对应的 ifcfg-eth1:x 文件。例如
ifcfg-eth1
-----------
DEVICE=eth1
BOOTPROTO=static
IPADDR=10.100.8.31
NETMASK=255.255.240.0
ONBOOT=yes
USERCTL=no
and ifcfg-eth1:1
-----------------
DEVICE=eth1:1
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.100.8.200
NETMASK=255.255.240.0
USERCTL=no
因此,当系统启动时,这些脚本就会被加载。
答案3
如果是 Linux,那么它可能默认使用“弱主机模型”,因此:在弱主机模型中,IP 主机(IPv4 或 IPv6)可以在未分配要发送数据包的源 IP 地址的接口上发送数据包。这称为弱主机发送行为。IP 主机还可以在未分配要接收数据包的目标 IP 地址的接口上接收数据包。这称为弱主机接收行为。