如何查看特定主机的路由

如何查看特定主机的路由

我有一个项目需要我将流量从服务器上的特定端口发送出去,该服务器有 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

相关内容