问题描述
如果将Ubuntu 11.04计算机同时连接到WiFi和3G,如何设置优先级以使应用程序(浏览器等)首先使用WiFi?如果不可用,则应使用3G。
基本上,我想设置网络连接的使用顺序。
编辑:我正在寻找一种更简单的方法,该方法对于那些既熟悉又不是Ubuntu /Linux专家的人会很有用。
最佳方案
我很惊讶,没有人提到执行此操作的最简单命令:ifmetric
。可以使用sudo apt-get install ifmetric
进行安装。此命令可用于更改任何接口的度量。具有较低度量标准的接口是Internet的首选。
要使用此功能,请首先使用route
命令查看指标:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 10.42.0.2 0.0.0.0 UG 600 0 0 wlan0
在这里,eth0
的度量较低,因此它将比wlan0
更为可取。如果要使用wlan0
,则降低其指标:
sudo ifmetric wlan0 50
现在,路由表如下所示:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.2 0.0.0.0 UG 50 0 0 wlan0
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
现在,Linux将使用wlan0
进行Internet连接。更改将立即反映出来。
次佳方案
设置metrics是更改优先级的方式。较高的度量标准将使用更多”expensive”,因此,如果OS需要路由流量,则OS将使用具有最低度量标准的接口。万一较低的度量标准接口关闭,它将使用较高的度量标准接口,因为它是唯一可用于将流量路由到该特定网络/目标的接口。
度量标准在文件/etc/network/interfaces中指定,指向文档的链接点。
使用任何文本编辑器来编辑文件,识别网络,然后仅更改metric
参数并保存。重新启动是重置所有值的最简单方法,而无需了解重新启动网络服务的令人讨厌的细节。
第三种方案
-
通过处理路由指标来为一般流量确定接口优先级。每个路由具有关联的参数,例如hop-counts和带宽。有关
route
命令,请参阅man-page中的”metric”选项。$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.254 255.255.255.255 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 256 0 0 eth0
-
“traffic shaping”通常解决了优先访问应用程序对网络资源的问题-我将使用网络search-engine来查看Ubuntu或路由器是否可以做到这一点。
脚注。
在MS Windows而非Linux上,netstat -nr
命令输出的信息与route print
相同。包括路由指标。
第四种方案
我还没有真正尝试过,但是NCD(网络配置守护程序-1)可以用于此目的。该网站声称简化了网络配置。语法似乎很简单。
#等待网络连接。通过将eth1放在eth0前面来选择它。列表(“NET-eth1″,”NET-eth0”)pnames;
(1)-http://code.google.com/p/badvpn/wiki/NCD
第五种方案
这都是由于路由度量。您要删除具有最低度量标准的默认路由,然后恢复具有较高度量标准的旧路由。请遵循以下命令。
假设您的路由表如下所示:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.16.87.254 0.0.0.0 UG 100 0 0 ens38
0.0.0.0 192.168.151.2 0.0.0.0 UG 101 0 0 ens33
10.16.86.64 0.0.0.0 255.255.255.248 U 100 0 0 ens38
10.16.87.254 0.0.0.0 255.255.255.255 UH 100 0 0 ens38
10.16.88.6 10.16.87.254 255.255.255.255 UGH 100 0 0 ens38
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens38
192.168.151.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
现在删除默认网关
# route delete default gateway
现在恢复较旧的默认网关(请注意,这种情况下的指标比当前的默认路由101高102)
# route add default gw 10.16.87.254 metric 102 dev ens38
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.151.2 0.0.0.0 UG 101 0 0 ens33
0.0.0.0 10.16.87.254 0.0.0.0 UG 102 0 0 ens38
10.16.86.64 0.0.0.0 255.255.255.248 U 100 0 0 ens38
10.16.87.254 0.0.0.0 255.255.255.255 UH 100 0 0 ens38
10.16.88.6 10.16.87.254 255.255.255.255 UGH 100 0 0 ens38
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens38
192.168.151.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33