linux 命令route add default dev eth0和route add default gw eth0的区别?

本机以太网卡eth0的IP地址为手动配置:
网关IP地址为192.168.1.1/24

#ifconfig eth0 192.168.1.100 netmask 255.255.255.0  
#route add default dev eth0             //默认路由,将去往未知网络的数据包全部从接口eth0发出去
测试结果为ping外网失败;
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 eth0

[root@localhost ~]# ping  www.baidu.com  -c 5
PING  www.a.shifen.com  (61.135.169.105) 56(84) bytes of data.
From localhost (192.168.1.110) icmp_seq=2 Destination Host Unreachable
From localhost (192.168.1.110) icmp_seq=3 Destination Host Unreachable
From localhost (192.168.1.110) icmp_seq=4 Destination Host Unreachable
From localhost (192.168.1.110) icmp_seq=5 Destination Host Unreachable

---  www.a.shifen.com  ping statistics ---
5 packets transmitted, 0 received, +4 errors, 100% packet loss, time 4001ms
pipe 3

但是,如果我不写默认路由出接口,而是直接下一跳,却可以ping通外网!
如下:
#route del default dev eth0         //删掉刚才配的静态路由
#route add default gw 192.168.1.1       //写默认路由的下一跳地址
现在ping外网却通了! 

[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0

[root@localhost ~]# ping  www.baidu.com  -c 5
PING  www.a.shifen.com  (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125: icmp_req=1 ttl=51 time=305 ms
64 bytes from 61.135.169.125: icmp_req=2 ttl=51 time=145 ms
64 bytes from 61.135.169.125: icmp_req=3 ttl=51 time=98.3 ms
64 bytes from 61.135.169.125: icmp_req=4 ttl=51 time=75.5 ms
64 bytes from 61.135.169.125: icmp_req=5 ttl=51 time=342 ms

---  www.a.shifen.com  ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 75.570/193.664/342.982/109.636 ms
========================================================
那么为什么 route ...dev eth0不行?而route ...gw eth0却可以呢?
原理上这两条命令应该是等价的阿!

你可能感兴趣的:(linux 命令route add default dev eth0和route add default gw eth0的区别?)