我试图实现的目标非常接近这,但有一个变化。我希望第二个“nic”是第二个 IP 地址(我猜有时称为虚拟 nic),添加到同一个物理 nic(在同一个子网上,如果我专门通过这个新 nic 发送数据包,它能够到达网关)。我知道你可能会问我为什么要这么做,你可能会猜到这是一个很长很复杂的答案,但最重要的是我需要:
- 两个独特的地址,当我专门绑定它们时,它们可以访问互联网
- 这些接口位于同一子网,以方便其余的网络配置
如果有帮助的话,第二个接口只需要在我绑定到它并从它发送数据包(或数据包专门到达它)时“表现”即可。也就是说,除了这个之外,我不需要任何其他路由规则。
现在,我尝试了最明显的方法,即修改上面的答案,仅将 eth1 更改为 eth0:1,但是这对我来说不起作用,导致RTNETLINK answers: File exists
当我绑定到虚拟网卡时它实际上不起作用(例如,使用简单的测试)wget --bind-address
。
我觉得这个解决方案已经很接近了,只是还需要一些额外的东西 - 请帮忙!
答案1
您也可以这样做。此方法更适合较新的 ubuntu 系统。
auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
broadcast 192.168.255
gateway 192.168.1.1
# the "up" lines are executed verbatim when the interface is brought up
up ip addr add 192.168.1.2 brd 192.168.1.255 dev eth0 label eth0:0
up ip addr add 192.168.1.3 brd 192.168.1.255 dev eth0 label eth0:1