我有一个关于在一张网卡上使用多个 IP 地址的问题。我搜索了一下,找到了一些方法。
方法一(添加新ip,192.168.201.131)
使用
ip addr add
命令 添加新 ip$ sudo ip addr add 192.168.201.131/24 dev eno1
检查更改
$ ip addr 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 70:5a:0f:4d:6c:e7 brd ff:ff:ff:ff:ff:ff inet 192.168.201.130/24 brd 192.168.201.255 scope global eno1 valid_lft forever preferred_lft forever inet 192.168.201.131/24 scope global secondary eno1 valid_lft forever preferred_lft forever inet6 fe80::ca93:7382:b896:96ef/64 scope link valid_lft forever preferred_lft forever
方法2(添加新ip,192.168.201.132)
修改以太网接口
$ sudo vim /etc/network/interfaces
在接口上附加以下行
auto eno1:0 iface eno1:0 inet static address 192.168.201.132 netmask 255.255.255.0
检查更改
$ ip addr 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 70:5a:0f:4d:6c:e7 brd ff:ff:ff:ff:ff:ff inet 192.168.201.130/24 brd 192.168.201.255 scope global eno1 valid_lft forever preferred_lft forever inet 192.168.201.131/24 scope global secondary eno1 valid_lft forever preferred_lft forever inet 192.168.201.132/24 brd 192.168.201.255 scope global secondary eno1:0 valid_lft forever preferred_lft forever inet6 fe80::ca93:7382:b896:96ef/64 scope link valid_lft forever preferred_lft forever
添加两个ip(192.168.201.131和192.168.201.132)后
- 我检查了
ifconfig
eno1 Link encap:Ethernet HWaddr 70:5a:0f:4d:6c:e7 inet addr:192.168.201.130 Bcast:192.168.201.255 Mask:255.255.255.0 inet6 addr: fe80::ca93:7382:b896:96ef/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:247227538 errors:0 dropped:18734853 overruns:0 frame:0 TX packets:153950869 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:202326646374 (202.3 GB) TX bytes:85834800896 (85.8 GB) Interrupt:16 Memory:d1000000-d1020000
eno1:0 Link encap:Ethernet HWaddr 70:5a:0f:4d:6c:e7 inet addr:192.168.201.132 Bcast:192.168.201.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:16 Memory:d1000000-d1020000
- eno1 上没有通过方法 1 添加的 192.168.201.131
- 对两个新的 IP(*.131、*.132)进行 ping 操作正常。
- 我不明白这两种方法有什么区别。
答案1
在您的用户案例中,响应 ping 是相同的净效果。
显然,第一种方法是使用 route 命令在较低级别手动/直接修改内核路由表(如果愿意)。
看https://www.cyberciti.biz/faq/what-is-a-routing-table/有关内核路由表的解释。
在第二个示例中,您正在编辑配置文件,/etc/network/interfaces
它本质上通过网络脚本执行相同的操作。请参阅人机界面了解详情。
显然,作为网络脚本的一部分,内核路由表通过 ifup / ifdown 和/etc/network/interfaces
/ 网络脚本进行更新,具有额外的配置选项和自定义前/后启动/关闭脚本的可能性,因此您有更多选择/etc/network/interfaces
。
第一种方法是临时的,并且在重启后将无法继续(尽管您可以添加自定义的初始化脚本来实现这一点)。
第二种方法在重启后仍然有效。在启动时,网络脚本是启动过程的一部分,而依赖于它们的其他服务将等待网络启动(apache、ftp、samba、nfs 等)。如果您在启动期间简单地调用 route,这些服务在 route 命令之前运行可能会出错。
希望以上内容能够对您有所帮助,或者至少为您指明所需的正确信息。