如何在Linux中添加静态路由(与Windows相比)

如何在Linux中添加静态路由(与Windows相比)

在 Windows 上,我只需输入:

C:\Users\WindowsUser>route add 8.8.8.8 mask 255.255.255.255 10.25.10.28
OK!

(我的IP 10.10.201.15/8)

Linux(其IP 10.10.201.16/8)上埃赫特0

route add -net 8.8.8.8 netmask 255.255.255.255 gw 10.25.10.28 dev eth0

ip 路由显示:8.8.8.8 via 10.25.10.28 dev eth0

但当我在 8.8.8.8 上执行跟踪路由时,它会离开默认网关(def gw 是 10.0.0.1)。有小费吗?

traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1  10.0.0.1 (10.0.0.1)  0.277 ms  0.246 ms  0.513 ms'

ip r 显示:(为了安全起见,我的公共地址被删除)

8.8.8.8 via 10.25.10.28 dev eth0  metric 1
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.10.10.130
10.0.0.0/8 dev eth1  proto kernel  scope link  src 10.10.10.125
default via mypubicip dev eth0.2

我读但没有帮助。

答案1

既然您提到 10.25.10.28 和 10.0.0.1 位于“同一主机”上,那么跟踪路由可能在 Linux 系统上使用正确的路由。也许是网关(10.25.10.28 和 10.0.0.1)使用不同的路由(或者只是不同的源 IP)返回 Linux 系统。尽管许多响应跟踪路由数据包的系统将使用其接收跟踪路由数据包的接口的 IP 进行响应,但它们并非必须这样做。

注意:对于“同一主机”,我假设我们使用术语主机来表示操作系统实例,而不是表示虚拟机管理程序(主机与来宾)。

您提到“def gw 是 10.0.0.1”,但“ip r”的输出显示“default via mypubicip dev eth0.2”,所以我很想说您的默认网关不是 10.0.0.1。我想通过评论要求澄清,但我还不能添加评论。目前,我假设 10.0.0.1 是您环境中的“常用”默认路由,但它不适用于您的 Linux 系统。

相关内容