在Linux中,是沒有網關的,需要設置的只是一條默認路由。
Windows中給出的網關指的是,把不知道去往哪裏的數據包交給網關。也就是默認路由的概念。
因此在Linux中設置網關,我們需要設置的只是一條默認路由而已。
如網卡設置的是IP地址通過DHCP獲取,一般網關可以正常獲取,即路由表中會有默認路由
如果通過nmtui配置了網關,那麼路由表中也會有默認路由
route命令查看路由表
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.33.2 0.0.0.0 UG 100 0 0 ens33
10.1.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37
192.168.33.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
解釋:因爲我有一塊網卡ens33是通過DHCP獲取的IP地址的,所有會有一條默認路由
上面路由表,ens37這塊網卡只有IP地址,沒有網關。也給他添加一個網關。
[root@localhost ~]# route del default gw 10.1.1.254
在進行路由表的查看
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.1.254 0.0.0.0 UG 0 0 0 ens37
0.0.0.0 192.168.33.2 0.0.0.0 UG 100 0 0 ens33
10.1.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37
192.168.33.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
現在在路由表中有兩條默認路由了,這時候Linux會選擇哪一條呢?這是由路由表中的metric值來決定的。
Linux會選擇metric值小的,也就是說,現在Linux要去的目的地,在他的路由表中沒有的,都會把數據包交給ens37
特點總結:
1、用命令route,手動添加的默認路由的優先級是最小的,是0
2、metric值是100的默認路由,是通過nmtui當中配置進去的,系統設置了他的默認優先級是100。
通過route命令添加默認路由,後並且修改Metric值
[root@localhost ~]# route del default gw 10.1.1.254 //先刪除之前默認的配置,因爲測試下來不會覆蓋
[root@localhost ~]# route add default gw 10.1.1.254 metric 101
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.33.2 0.0.0.0 UG 100 0 0 ens33
0.0.0.0 10.1.1.254 0.0.0.0 UG 101 0 0 ens37
10.1.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37
192.168.33.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
注意:以上配置只是臨時修改哦,需要永久修改的話,可以用個nmtui或者直接修改配置文件。