在我当前的 CentOS ifconfig 中,我拥有eth0
一系列虚拟接口,eth0:0 - eth0:3
每个虚拟接口在子网中占用一个唯一的地址69.xx.yy.194/29
(网关 = .193
,广播 = .199
)
现在我只有一次机会,因为我通过远程终端访问服务器,所以我想在这里仔细检查一下我要做的事情。
我猜如果我执行ifdown eth0
,它将关闭一切,包括接口。我希望能够通过将机器上运行的 5 个服务分别插入各自的虚拟接口来关闭其中任何一个(请注意,我现在只有 4 个接口)
因此,是否可以不为分配 IP 地址eth0
,而是将其放在上面eth0:0
,以便最终得到 5 个接口,每个接口都有一个单独的地址?
(这会对我的 PuTTY 连接产生意外的副作用吗?)
答案1
您说得对,关闭 eth0 将会关闭所有基于 eth0 的虚拟接口。
您无需关闭接口,而是可以使用地址 0.0.0.0 重新配置它 - 这样接口将保持开启状态,但没有 IP 地址。我刚刚验证了以下顺序是否完美运行:
服务器原有eth0地址为172.17.8.10,默认网关为172.17.8.1
draal:~ # ifconfig eth0:0 172.17.8.11
draal:~ # ifconfig eth0 0.0.0.0
draal:~ # ping 172.17.8.1
PING 172.17.8.1 (172.17.8.1) 56(84) bytes of data.
64 bytes from 172.17.8.1: icmp_seq=1 ttl=255 time=0.119 ms
64 bytes from 172.17.8.1: icmp_seq=2 ttl=255 time=0.244 ms
^C
--- 172.17.8.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.119/0.181/0.244/0.063 ms
draal:~ # ifconfig -a
eth0 Link encap:Ethernet HWaddr 08:00:27:8C:98:44
inet6 addr: fe80::a00:27ff:fe8c:9844/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1002 (1002.0 b) TX bytes:1940 (1.8 Kb)
eth0:0 Link encap:Ethernet HWaddr 08:00:27:8C:98:44
inet addr:172.17.8.11 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
执行此操作时,您的 SSH 连接很可能会中断。我会先通过 SSH 连接到其中一个虚拟接口;只要您不关闭ifcfg eth0
,该会话就不会中断。
我还建议您设置一个 at 作业或 cron 作业,在 5 分钟后将所有接口重置为之前的状态。如果新设置有效,您可以取消 at 作业,但如果无效,您可以在几分钟后重新进入。