有人针对 Windows 提出了类似的问题自动优先选择以太网而不是 WLAN但我在 Linux 上并使用 NetworkManager。
现在,如果以太网电缆已插入并且可用,同时 wifi 连接也可用,NetworkManager 将选择 wifi 连接。我如何告诉它始终选择有线连接(如果可用)?
我在 Fedora 17 上使用 NetworkManager-0.9.4.0-9.git20120521
答案1
networkmanager-connection-editor
NetworkManager 有一个名为或 的GUI 前端nm-connection-editor
,可以在其中为各个连接设置优先级。
0—最高优先级等等。
答案2
注意:@Proxy 用户的回答作为我回答的基础。
nmcli
您可以使用(的命令行界面)完成此操作NetworkManager
,无需安装ifmetric
。
您需要做的就是将ipv4.route-metric
每个所需网络的选项设置为某个正整数(默认值为-1
);数字越小,优先级越高。之后,您需要重新连接到所有已更改/所需的网络(简单up
就够了,无需先关闭它们down
)。
# List of connections
# You need to get the connection name (first column)
nmcli con
# Set the `ipv4.route-metric` of each required network
# Change the `$con_name_x` and integer as required
nmcli con mod $con_name_1 ipv4.route-metric 20 # This connection is more prefered
nmcli con mod $con_name_2 ipv4.route-metric 40 # This connection is less prefered
# Disconnect and reconnect the networks to make the changes effective
nmcli con down $con_name_1
nmcli con down $con_name_2
nmcli con up $con_name_1
nmcli con up $con_name_2
您也可以ipv6.route-metric
为每个网络进行设置。
答案3
仅举几例:
您可以在您的环境中尝试这些命令,看看它们是否有效并带来预期的结果:
- 自动以太网
- auto ethX(将 X 替换为内核指定的数字(运行 ifconfig 进行检查))
或者,您可以通过以下命令查看找到的 IP 路由:
sudo route -n
通过查看输出,看看 wlan0 是否在所有路由上。
已经有人就此提出了几个其他问题,而让 Linux 支持某个接口(默认情况下是 eth0,但在您的情况下,出现了问题)的唯一方法是操纵指标。
您可以使用以下方式配置接口的度量伊夫米特它会操纵您指定的接口上的度量。我还没有在 Fedora 上测试过它,但我可以看到它在存储库中。因此,发出:
yum install ifmetric
安装完成后,您将需要访问:
/etc/network/interfaces
使用 vi、nano、emacs 或任何您使用的编辑器,然后在您想要配置的接口下方添加(在本例中为 eth0):
up ifmetric eth0 X
X 与确定优先级的数字有关,默认情况下 0 是最高优先级,但为了避免击中静态/默认路由,请使用高于 2 的数字。然后您需要为 wlan0 添加一个更高的数字。所以:
up ifmetric eth0 10
在 wlan0 下:
up ifmetric wlan0 20
你的文件看起来应该像这样:
iface eth0 inet dhcp
up ifmetric eth0 10
iface wlan0 inet dhcp
up ifmetric wlan0 20
如果有帮助的话请告诉我们!
编辑:刚刚看到几个链接:
编辑2:
网络管理器 GUI 中还有一个度量字段!