当前位置: 首页>>技术教程>>正文


如何在Ubuntu中设置网络连接的优先级?

, ,

问题描述

如果将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参数并保存。重新启动是重置所有值的最简单方法,而无需了解重新启动网络服务的令人讨厌的细节。

第三种方案

  1. 通过处理路由指标来为一般流量确定接口优先级。每个路由具有关联的参数,例如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
    
  2. “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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8377.html,未经允许,请勿转载。