前提:我测试的服务器状态如下(启动eth1为新添加网卡):
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.183 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::f816:3eff:fe59:698 prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:59:06:98 txqueuelen 1000 (Ethernet)
RX packets 576 bytes 121732 (121.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 663 bytes 100971 (100.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.139 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::f816:3eff:fecc:24af prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:cc:24:af txqueuelen 1000 (Ethernet)
RX packets 381 bytes 29751 (29.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 253 bytes 22258 (22.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
第一步:创建一个在 Ubuntu系统启动时执行的脚本。
/root/.ssh/addroute.sh
ip route add default via 192.168.0.1 dev eth0 table 10
ip route add 192.168.0.0/24 dev eth0 table 10
ip rule add from 192.168.0.183 table 10
ip route add default via 192.168.0.1 dev eth1 table 30
ip route add 192.168.0.0/24 dev eth1 table 30
ip rule add from 192.168.0.139 table 30
第二步:新建
/lib/systemd/system/myiproute.service
[Unit]
Description=iproute
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/bin/bash /root/.ssh/addroute.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
第三步:设置开机启动
systemctl enable myiproute.service
第四步:手动启动
service myiproute start
第五步:查看状态
systemctl status myiproute