对于服务器而言,有一些时候,本地自建服务器需要多个网卡来连接不同的网络(可能是内网,也可能是外网),这个时候就要指定路由规则了!否则,通往公网的流量发到内网的网卡上,肯定无法收到报文。
需要使用 net-tool
s工具包,这个包ubuntu未内置,需要先通过 apt安装
,安装命令如下:
$ sudo apt install net-tools点击复制复制失败已复制
命令
命令格式如下:
$ sudo route add -net [内网网段] netmask [子网掩码] [网卡名称] 简写形式: $ sudo route add -net [内网网段]/[子网前缀长度] [网卡名称] $ sudo route add -net [内网网段] netmask [子网掩码] gw [路由ip/网关IP] 简写形式: $ sudo route add -net [内网网段]/[子网前缀长度] gw [路由ip/网关IP]点击复制复制失败已复制
实战演示
查看一下现在的网卡:
$ ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether ******** brd ff:ff:ff:ff:ff:ff 3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether ******** brd ff:ff:ff:ff:ff:ff点击复制复制失败已复制
可以看到现在系统中有两个实际网卡,分别是: ens160
和 ens192
,其中 ens160
是公网网卡,我们需要它来上网, ens192
是内网网卡,我们需要它来接收内网网络中的网关设备数据。
网卡 | ip | 网关 |
ens160 | 10.87.23.111/25 | 10.87.23.254 |
ens192 | 192.168.151.254/25 | 192.168.151.254 |
配置命令如下:(采用简写形式)
$ sudo route add -net 0.0.0.0/0 ens160 $ sudo route add -net 0.0.0.0/0 gw 10.87.23.254 $ sudo route add -net 192.0.0.0/8 gw 192.168.151.254 $ sudo route add -net 192.0.0.0/8 ens192点击复制复制失败已复制
查看结果:
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.87.23.254 0.0.0.0 UG 0 0 0 ens160 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ens160 0.0.0.0 10.87.23.254 0.0.0.0 UG 0 0 0 ens160 0.0.0.0 192.168.151.254 0.0.0.0 UG 0 0 0 ens192 10.87.23.0 0.0.0.0 255.255.255.0 U 0 0 0 ens160 192.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ens192 192.0.0.0 192.168.151.254 255.0.0.0 UG 0 0 0 ens192 192.168.151.0 0.0.0.0 255.255.255.0 U 0 0 0 ens1