查看路由
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 ens32
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens32
-n:表示不解析地址
输出字段详情:
- Destination:目标地址
- Gateway:下一跳地址
- Genmask:子网掩码
- Flags:标志
- U:路由是活动的
- H:目标是主机
- G:需要经过网关
- !:拒绝路由
- D:由路由的后台程序动态的安装
- M:由路由的后台程序修改
- R:恢复动态路由产生的表项
- Metric:到达目的地所要经过路由的数量,值越小越优先
- Ref:路由被引用次数
- Use:路由被使用的次数
- Iface:网卡接口
添加主机路由
添加一条主机路由,目标地址是192.168.2.202,下一跳是192.168.2.1,经过网口ens32
route add -host 192.168.2.202 gw 192.168.2.1 dev ens32
添加网络路由
添加一条网络路由,目标地址是192.168.2.0/24,下一跳是192.168.2.1,经过网口ens32
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 dev ens32
添加默认网关
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1
或者
route add default gw 192.168.1.1
拒绝路由到特定主机或网络
route add -host 192.168.1.101 reject
删除路由
route del -host 192.168.2.202 gw 192.168.2.1 dev ens32
也就是route del 后面加上路由各项指标,路由指标越详细删除项越精确
内核开启IP转发
是否需要开启,主要是作用于是否需要将流量转发到外部主机
sysctl -w net.ipv4.ip_forward=1
然后在文件/etc/sysctl.conf里面修改参数,以保持永久开启
net.ipv4.ip_forward = 1
路由持久化
默认路由走192.168.1.1,192.168.2.0的网段走192.168.1.102转发
使用rc.local文件
vim /etc/rc.local
route -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.102 dev ens32
chmod +x /etc/rc.local
ubuntu22.04网络配置文件设置路由
vim /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens32:
dhcp4: false
addresses:
- 192.168.1.101/24
routes:
- to: default
via: 192.168.1.1
- to: 192.168.2.0/24
via: 192.168.1.102
nameservers:
addresses: [192.168.1.1]
version: 2