Route(Linux)
查看路由表
打印当前内核路由表,默认打印ipv4,加
-4
、-6
参数可以指定v4、v6root@ubuntu:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default OpenWrt 0.0.0.0 UG 0 0 0 ens18 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens18
加
-n
参数不解析主机名root@ubuntu:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ens18 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens18
添加路由
添加一条路由规则,目的是192.168.2.2主机,网关192.168.1.238,走ens18网卡
route add -host 192.168.2.2 gw 192.168.1.238 dev ens18
添加一条路由规则,目的是192.168.2.0网段,网关192.168.1.238,走ens18网卡
route add -net 192.168.2.0/24 gw 192.168.1.238 dev ens18
也可以使用netmask的写法
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.238 dev ens18
添加默认路由
route add default gw 192.168.1.1 dev ens18
和Windows一样,Linux也可以通过设置跃点数的方法来决定路由优先级
route add -host 223.5.5.5/32 gw 192.168.50.1 dev eth0 metric 1
删除路由
删除目的为192.168.51.2主机的路由规则
route del -host 192.168.2.2
删除目的为192.168.51.0网段的路由规则
route del -net 192.168.2.0/24
同样也可以使用netmask的写法
route del -net 129.168.2.0 netmask 255.255.255.0
删除默认路由
route del default
路由持久化
不同的发行版使用不同的网络管理工具来管理路由表,需要按实际情况查询相关文档进行操作
Ubuntu使用netplan来管理网络,实现路由持久化需要修改
/etc/netplan/*.conf
文件来实现root@ubuntu:~# cat /etc/netplan/00-installer-config.yaml # This is the network config written by 'subiquity' network: ethernets: ens18: addresses: - 192.168.1.237/24 nameservers: addresses: - 192.168.1.1 search: [] routes: - to: default via: 192.168.1.1 - to: 192.168.2.0/24 via: 192.168.1.238 version: 2
如上所示,添加了到192.168.2.0的路由规则
CentOS/RHEL使用NetworkManager来管理网络,实现路由持久化需要通过
nmcli
命令来实现nmcli connection modify eth0 +ipv4.routes "192.168.2.0/24 192.168.1.238"
也可以设置接口对应默认路由的跃点数
nmcli connection modify eth0 ipv4.route-metric 1
设置完成后需要重启会话
nmcli connection up eth0