/****************************截屏******************************************/

root@freescale /mnt$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

/****************************截屏******************************************/

用route -n命令看:

1. 第一行表示,发往192.168.0.0这个网络的数据包,不需要经过网关(也即GateWay为0.0.0.0),且数据包经由eth0这个接口出去。

执行ip route add default via  192.168.0.1 dev
eth0这条命令后,出现第二行(注意:如果设置了default默认路由,则所有网卡的包都会走这个路由,无线也会,所以会造成

无线出问题,尽量不用这个方式,而是应当具体指定目标地址)

2. 第二行表示,所有没有明确地址的数据包(也即Destination为0.0.0.0),全都经由eth0这个接口发往192.168.0.1这个地址。

注意:0.0.0.0在不同的地方表示不同的含义,例如在netstat -n结果里

0.0.0.0表示本机所有地址。

在一些老的软件里,0.0.0.0还被用作广播地址。

3. 仅仅ip route add default dev eth0可以添加一条路由:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 eth0

也就是说,没指定网关,但是,这样ping 8.8.8.8是不通的。

4. ifconfig eth0 192.168.0.10 netmask 255.255.255.0会生成一条路由:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

也就是说,即使不指定网关,系统也会根据IP和子网掩码自动计算出网段,从而eth0能与网段内的地址通信。也就是说,除了指定默认网关(路由)时网关是有一条命令执行到系统中的,给其它网口指定的网关实际上只是个配置项,它并非存在一条命令执行到系统中,而是在以后添加特殊路由时用它,例如下面的./route
add -host 219.143.118.169 gw 192.168.0.2。

一个无线和有线共用的配置:

./route add -host 219.143.118.169 gw 192.168.0.2
./route add -host 222.133.11.150 gw 192.168.0.2
./route add -host 10.102.204.118 gw 192.168.0.1
# make the iptables rules take effect
iptables -F
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信