永久更改接口的度量

永久更改接口的度量

这是当我通过 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 和网络服务。

相关内容