如何在linux中设置首选网络接口

Mik*_*per 31 networking linux tcpip routing route

我的网络是这样设置的。 http://docs.google.com/Doc?docid=0AZ1YxuLE4djaZGhqN2s1NmRfMjhjNjc0Ym1meg&hl=en

现在的网络架构

一句话:我有一台机器(Calcium,运行 Arch Linux),它有两个网络接口。eth0 连接到路由器,并且是千兆位。Eth1 直接连接到超过 10 兆位的大学网络。路由器的上行也连接到大学网络,也是10兆。

目前(我相信)Calcium 上的所有流量都通过 eth0,通过路由器,无论是内部的还是外部的。(我如何确认这一点?)

理想情况下,发往内部网络 (192.168.10.0/24) 的流量将通过 eth0 传输到路由器,以及它要去的任何地方。所有其他流量都应该通过 eth1。

小智 43

这是完整的答案,以防它对其他人有帮助:

要制作目的地为 192.168.10.* 的数据包,请使用 eth0,所有其他数据包都使用 eth1:

1) 查看你当前的路由表

ip route list

一个条目类似于“默认通过 192.168.1.1”,其中 192.168.1.1 是您的路由器(又名网关)IP 地址。记住 eth0 和 eth1 的网关,因为我们稍后会用到它们。

2) 删除默认路由。(警告:这会让你脱机。)

ip route del default

3) 添加新的默认路由(这将使您重新联机)。将下面的 192.168.1.1 替换为上面的网关 IP 地址。

ip route add default via 192.168.1.1 dev eth1

4) 添加将由 eth0 服务的特定路由。更具体的路由自动优先于不太具体的路由。

ip route add 192.168.10.0/24 via 192.168.1.1 dev eth0

最后,您可以询问 Linux 将使用哪个接口将数据包发送到特定的 ip 地址:

ip route get 8.8.8.8

如果配置有效,发送到 8.8.8.8(Google 的服务器)的数据包将使用 eth1。发送到本地网络上任何 ip 的数据包:

ip route get 192.168.10.7

将使用 eth0。


War*_*ner 17

您的网络路由表将决定数据包的路由方式。您可以添加其他路由或更改默认网关以影响路由。

如果您需要其他帮助,请提供您的路由表。

要显示路由表:

/sbin/route -n

删除默认 gw:

/sbin/route del default gw $IP

添加默认 gw:

/sbin/route add default gw $IP

有关其他详细信息,请查看联机帮助页。还有其他方法可以操作和显示路由表。

netstat -r显示和ip进一步操作。