为啥route add添加路由后依然ping不通不同网段

==== 补充于 2018-11-29 14:42 ====
时隔6年,再次遇到此类问题,做一次补充。
题设还是不变,但这一次,除了路由都设置妥当了,依然无法从A ping通 C,经过一番研究发现,除了按照上一次回答的,需要设置路由外,还要检查iptables设置:
用“sudo iptables -L”查看Chain FORWARD是ACCEPT还是DROP,如果是DROP,
用“sudo iptables -P FORWARD ACCEPT”临时打开路由即可。
永久性修改iptables的方法,可以搜索“iptables-save”、“iptables-restore”和“iptables-persistent”等的用法,这里不赘述。

==== 最初回答于 2012-05-13 22:29 ====
最终的解决是这做的:1.A上需要添加路由route add 138.0.0.0 mask 255.255.255.0 192.168.56.22.C上需要添加路由route add -net 192.168.56.0 netmask 255.255.255.0 gw 138.0.0.1(但是linux系统自动把138.0.0.1作为所有default的destination的gw了,所以这一步实际可以省略了)3.这一步很关键,要把B机器上的IP转发功能打开,临时的打开方法是“echo 1 \u0026gt; /proc/sys/net/ipv4/ip_forward”,永久的修改,需要修改/etc/sysctl.conf文件。
之后就可以了。
【为啥route add添加路由后依然ping不通不同网段】 感谢大家的帮忙解答:)

■网友
既然在A上添加了去往138.0.0.0/24的路由,那么你在C上添加了去往192.168.56.0/24的路由了没?C能ping通B的192.168.56.2吗?如果不能的话,ping是无法回复echo reply的


    推荐阅读