app*_*pas 7 routing debian networkmanager
我有一台带有内置 NIC (eth0) 的机器,它用作 Raspberry Pi 的 DHCP 服务器。我还有一个 USB 3G 调制解调器,它显示为以太网设备 eth1。eth0 在/etc/network/interfaces. 当我将 Pi 连接到服务器时,/var/log/syslog显示
NetworkManager[2366]: <info> Policy set 'Ifupdown (eth0)' (eth0) as default for IPv4 routing and DNS.
Run Code Online (Sandbox Code Playgroud)
之后,ip route show给
default via 192.168.1.100 dev eth0 proto static
Run Code Online (Sandbox Code Playgroud)
然后我需要手动
ip route delete default
ip route add default via 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
让它再次通过 3G 调制解调器连接到互联网。我在服务器上使用 CrunchBang Linux,基于 Debian 7 wheezy,在 Pi 上使用最新的 Raspbian。
如何选择 NetworkManager 喜欢的默认路径?
编辑:这是我的/etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 192.168.100.1
netmask 255.255.255.0
allow-hotplug eth1
auto eth1
iface eth1 inet dhcp
Run Code Online (Sandbox Code Playgroud)
请注意,我已更改/etc/NetworkManager/NetworkManager.conf为
[ifupdown]
managed=true
Run Code Online (Sandbox Code Playgroud)
因为我希望能够使用 nm-applet 断开 eth1,即 3G 调制解调器。这是/etc/NetworkManager/NetworkManager.conf:
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
Run Code Online (Sandbox Code Playgroud)
[ipv4]部分添加never-default=true.sudo nmcli con mod "connection name" ipv4.never-default yes通过这种方式,您将能够删除隧道中的默认路由并添加您自己的路由。
我迟到了 4 年,但我刚刚花了 12 个小时发现并解决了这个问题。类似情况:基于 ARM 的 Jetson Nano 运行 Linux 4 Tegra 内核和 Ubuntu 18.04 操作系统,以太网端口 (eth0) 用于本地网络,USB 蜂窝加密狗 (eth1) 用于互联网。
症状是相似的 - 一旦以太网电缆插入接口被调出,然后 3 分钟后我得到:
NetworkManager[3773]:[1562908622.2587] 策略:将“有线连接 1”(eth0)设置为 IPv4 路由和 DNS 的默认值
在 syslog 中,并且互联网连接已断开。
NetworkManager 以难以编程的神秘方式工作 - 更适合让用户坐在前面,在必要时可以重置内容。我没有那么奢侈,所以不得不让它发挥作用。
最终有效的是ipv4.route-metric在 eth1 上设置较低(较高优先级)。检查输出route -n以查看当前指标是什么。忽略某些路由上的额外 20000 - 这是 NetworkManager 试图降低没有 Internet 连接的路由的优先级,但这很糟糕。
因此,假设 eth0 的指标为 100。优先使用 eth1 接口:
sudo nmcli con mod "Wired connection 2" ipv4.route-metric 99
Run Code Online (Sandbox Code Playgroud)
并重新启动。
现在为您节省 10 小时的故障排除时间 - 请注意,路由指标与 DNS 优先级无关!所以,如果你仍然有连接问题,请确保它不是一个DNS解析问题(如你的DHCP服务器提供的虚拟解析服务)。如果是,则增加ipv4.dns-priority您的 eth0 连接以降低优先级,和/或确保ipv4.dns-search您的 eth1 设置为“~”以使其成为首选选项。
小智 0
网络管理器将始终覆盖您的设置,您必须编辑:
vi /etc/网络/接口
找到eth0并设置:
gateway 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
重新启动网络服务:
/etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16248 次 |
| 最近记录: |