我有一个项目需要我将流量从服务器上的特定端口发送出去,该服务器有 7 个以太网端口。我创建了 IP 规则,以将数据从某个主机发送到某个端口。我可以通过“ip rule show”愉快地查看我的规则
但是,当我创建一条路由说“为这台主机使用该网关”时,我没有在 Netstat 中看到特定于主机的路由。
ip route add 172.16.2.65 via 172.16.1.1 dev eth3 table eth3
当我执行 netstat -rn 时,我希望看到一条特定于此主机的路由。这是正确的吗?我没有看到此主机特定路由。Netstat -rn 是正确的命令吗?有什么想法吗?谢谢。
[18:29:20] shock:/home/debug # netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth3
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth4
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth5
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth6
0.0.0.0 172.16.1.1 0.0.0.0 UG 0 0 0 eth0
答案1
当我执行 netstat -rn 时,我希望得到该主机的特定路由。
netstat 使用过时的代码来访问路由表。它从未更新过以处理多个路由表。您不应该使用 netstat 或 ifconfig。它们没有得到维护,并且会欺骗您有关系统状态的信息。
您添加的路线已添加到名为令人困惑地eth3.netstat ip route add 172.16.2.65 via 172.16.1.1 dev eth3 table eth3
只会看到主表,所以这个路由不可见。
如果您想查看表格的路线,eth3
请使用ip route show table eth3
、 或ip route show table all
。