我有一个装了Ubuntu系统的服务器带有两个网口eth0和eth1。eth0的IP是192.168.2.178/24, eth1的IP是192.168.2.179。
通过netplan配置网络,内容如下:
network:
ethernets:
eth0:
addresses:
- 192.168.2.178/24
dhcp4: false
gateway4: 192.168.2.1
nameservers:
addresses:
- 192.168.2.1
optional: true
eth1:
addresses:
- 192.168.2.179/24
dhcp4: false
optional: true
renderer: networkd
version: 2
当我完成这个网络配置后,系统的路由表中会自动添加两条路由,如下所示:
Destination | Gateway | Genmask | Flags | Metric | Ref | Use | Iface |
---|---|---|---|---|---|---|---|
192.168.2.0 | 0.0.0.0 | 255.255.255.0 | U | 0 | 0 | 0 | eth0 |
192.168.2.0 | 0.0.0.0 | 255.255.255.0 | U | 0 | 0 | 0 | eth1 |
在服务器上访问192.168.2.0/24这个内网段其他IP时会发生冲突。
我希望服务器在访问192.168.2.100的时候通过eth1网口,访问其他IP的时候通过eth0网口。
我应该怎么在系统中进行路由相关的配置,或者在netplan中配置能够永久生效。
我试过手动进行如下配置能够达到效果。
$ route del -net 192.168.2.0 netmask 255.255.255.0 dev eth1
$ route add -host 192.168.2.100 dev eth1
但是当Ubuntu重启的时候或者插拔服务器的网线时,路由表就会被重置,上面手动配置的路由就会消失。
感觉标准答案应该不是chatgpts说的在
/etc/network/interfaces
里面配置路由。本身netplan配置文件里面就是可以指定路由的。既然用了netplan,这种情况下,直接在netplan里面加配置文件就好了。
https://netplan.readthedocs.io/en/stable/netplan-yaml/#routing