V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wednesdayco
V2EX  ›  Linux

arch Linux 默认路由表配置

  •  
  •   wednesdayco · 332 天前 · 1692 次点击
    这是一个创建于 332 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ip route show 显示了俩 default
    default via 10.0.0.1 dev enp2s0 ... 20100
    default via 182.xxx.xxx.1 dev wlp3s0 ... 20900
    这样访问网络始终使用的第一个 10 段的有线网卡 不默认使用 wlp3s0 这个无线网络

    通过 ip route del default via 10.0.0.1 dev enp2s0 ... 20100
    然后 ip route add default via 10.0.0.1 dev enp2s0 ... 20900

    两个网络都正常,但几秒后 ip route show 显示 20100 这个又被添加了回去

    桌面装的 KDE
    有兄弟知道咋回事不
    10 条回复    2024-01-08 10:52:09 +08:00
    QinYu0226
        1
    QinYu0226  
       331 天前   ❤️ 1
    我只能想到个坏主意。它不断地变回去,你就要不断地覆盖它。写一个脚本每几秒执行一次这个 ip route add ,把终端窗口挂在后台。

    我知道这是人机对抗 doge , 但也想不出好办法。

    这有一点像当初 iPhone 5C 的 WIFI Bug ,附近有两个 WIFI ,一个名称包含中文,一个名称纯英语,5C 总是会优先连接纯英语的那个,即使包括中文的那个明明信号更好但它就是不会优先连接。这是名称排序的问题。
    McZoden
        2
    McZoden  
       331 天前   ❤️ 1
    KDE 有没有自带的网络管理软件,NetworkManager 之类的,看一下能不能修改 Meric
    你这样手动用 ip route add 没用的,KDE 这一类的集成桌面系统有自己的网络管理工具,会覆盖你的修改
    wednesdayco
        3
    wednesdayco  
    OP
       331 天前
    @McZoden NetworkManager 是自己手动装的

    @QinYu0226 我装了个 cockpit ,他这个 default via 182.xxx.xxx.1 dev wlp3s0 ... 20900 变成了 100 我有点莫名其妙
    McZoden
        4
    McZoden  
       331 天前   ❤️ 1
    确定是 Network Manager 的话,搜到一个回答:
    https://askubuntu.com/questions/165679/how-to-manage-available-wireless-network-priority

    Network Manager 有一个配套工具,叫 nmcli ,用这个来修改多网络的优先级

    同样的,这篇回答里面还提到了配置文件路径
    /etc/NetworkManager/system-connections/

    可以进去看一下,是不是有对应的配置文件

    其他回答里也提供了一些方法
    wednesdayco
        5
    wednesdayco  
    OP
       331 天前
    @McZoden 这里的 autoconnect-priority 用起来是连接的优先级,我之前试了一下不管用,/etc 里面的配置也是这个东西
    acbot
        6
    acbot  
       331 天前   ❤️ 1
    arch Linux 不是很熟,果是 NetworkManager 管理网络的话 可以试试

    nmcli connection modify 接口名称 ipv4.route-metric 值 这样的方式调整优先级,

    因为我猜 你不是配置的固定地址 而是通过 dhcp 来获取的地址,所以当下次 dhcp 更新的时候整个值又变回去了。

    或者需要在 NetworkManager 配置文件中去指定,应该才能长期保持,具体怎么配置可以搜搜!
    wednesdayco
        7
    wednesdayco  
    OP
       331 天前
    @acbot 那估计还是得靠 NetworkManager 控制 我再去看看对应的配置文章
    fuis
        8
    fuis  
       331 天前   ❤️ 1
    nmcli 有一个连接属性 ipv4.ignore-auto-routes ,然后设置连接的 metric 。
    McZoden
        9
    McZoden  
       331 天前   ❤️ 1
    在 Arch 的官网上的 Network Manager 里,找到了这么一段
    nmcli command line interface
    nmcli connection modify 'Wired connection 2' setting.property value. See nmcli(1) for usage. For example, you can change its IPv4 route metric to 200 using nmcli connection modify 'Wired connection 2' ipv4.route-metric 200 command.

    看上去是需要靠 ipv4.route-metric 来修改 metric
    这个和 setting.property 是区分开来的,这个指的是优先级

    如果还是不行就没想法了
    这是链接: https://wiki.archlinux.org/title/NetworkManager
    wednesdayco
        10
    wednesdayco  
    OP
       331 天前
    @McZoden 这个对了!感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5897 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:49 · PVG 09:49 · LAX 17:49 · JFK 20:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.