这是当我通过 USB 将 Android 手机连接到 Raspberry 并启用 USB 共享时的路由表。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.42.129 0.0.0.0 UG 204 0 0 usb0
0.0.0.0 192.168.0.1 0.0.0.0 UG 303 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
192.168.42.0 0.0.0.0 255.255.255.0 U 204 0 0 usb0
我想wlan0
成为首选界面。那么如何才能永久更改一个接口的指标呢?
另外,Linux 如何决定接口使用哪个度量值?
答案1
解决方案之一是/etc/network/interfaces
使用预定义的度量来配置添加默认路由的设置:
auto lo
iface lo inet loopback
# Primary interface
auto wlan0
iface wlan0 inet static
address 192.168.0.100
netmask 255.255.255.0
dns-nameservers 192.168.0.1 8.8.8.8
post-up /sbin/ip route add default via 192.168.0.1 dev wlan0 metric 10
post-down /sbin/ip route del default via 192.168.0.1 dev wlan0 metric 10
wpa-ssid <your_SSID>
wpa-psk <your_PSK>
也许,您需要添加另一个特定于您的设置的 Wi-Fi 选项。
另一个解决方案是更改/etc/dhcpcd.conf
.根据dhcpcd 手册可以将指标分配给接口:
metric Metrics are used to prefer an interface over another one, lowest wins. dhcpcd will supply a default metric of 200 + if_nametoindex(3). An extra 100 will be added for wireless interfaces.
将这些行添加到/etc/dhcpcd.conf
:
interface wlan0
metric 200
interface usb0
metric 300
并重新启动 dhcpcd 和网络服务。