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


19

我已经建立了这样的网络。 http://docs.google.com/Doc?docid=0AZ1YxuLE4djaZGhqN2s1NmRfMjhjNjc0Ym1meg&hl=zh-CN

目前的网络架构

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

当前(我相信),Calcium上的所有流量都通过路由器通过eth0,而不管它是内部还是外部。(如何确认?)

理想情况下,发往内部网络(192.168.10.0/24)的流量将通过eth0到达路由器,无论走到哪里。所有其他流量都应通过eth1。


添加的标签:tcpip路由
Warner

如果您未授予他人访问文档的权限,那么您的Google文档将无济于事。
Zoredache

抱歉。我以为我公开了它,但是Google文档似乎不记得我的设置。现在应该可以访问了。
Mike Cooper 2010年

Answers:


13

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

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

要显示路由表:

/sbin/route -n

要删除默认gw:

/sbin/route del default gw $IP

要添加默认gw:

/sbin/route add default gw $IP

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

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


29

如果可以帮助其他人,这是完整的答案:

要使目的地为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。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.