You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Kubuntu 23.04切换网络时VPN自动断开的问题求助

Kubuntu 23.04切换网络时VPN自动断开的问题求助

我完全理解你的困扰——这种先借热点搭VPN再切受限WiFi的操作在Windows/安卓上顺滑得很,到Linux上就掉链子,确实闹心!针对你遇到的问题,咱们可以从几个方向入手调整,大概率能解决:

  • 调整NetworkManager的VPN绑定设置
    Linux上的NetworkManager默认会把VPN绑定到当前激活的网络接口,一旦接口切换(比如从热点WiFi切到学校WiFi),它就会认为原接口失效,直接断开VPN。你可以修改VPN的配置来取消这种绑定:

    1. 打开NetworkManager的VPN配置界面,找到你正在用的VPN连接
    2. 进入「IPv4设置」或「IPv6设置」标签页,把「仅在此网络上使用此连接」的勾选去掉
    3. 另外,在「通用」设置里,确保勾选「连接可用时自动连接」,并打开网络切换时保持连接的相关选项(如果有的话)
      要是图形界面找不到对应选项,你可以直接编辑VPN的配置文件(一般在/etc/NetworkManager/system-connections/目录下,文件名是你的VPN名称,需要sudo权限),找到[vpn]区块,把bind-device这一行删掉或者注释掉(加#),然后重启NetworkManager:
    sudo systemctl restart NetworkManager
    
  • 用命令行工具手动维持VPN连接
    有些图形界面的VPN客户端(比如Nord的GUI)可能对接口切换的处理比较死板,你可以试试用OpenVPN的命令行客户端来连接,这样能更灵活地控制连接:

    1. 先通过热点连接VPN,用命令:
    sudo openvpn --config /path/to/your/vpn-config.ovpn
    
    1. 切换到学校WiFi后,观察命令行输出的日志,如果出现重连尝试,你可以手动调整路由表,确保VPN的默认路由不会被新网络覆盖:
      先查看当前路由表:
      ip route
      
      找到VPN的默认路由(一般是指向VPN网关的那条),然后重新添加这条路由(如果它消失了):
      sudo ip route add default via <vpn-gateway-ip> dev <tun0>
      
      tun0是OpenVPN常用的虚拟接口,你可以用ip link确认实际接口名称)
  • 修改NetworkManager的网络切换策略
    你可以调整NetworkManager对网络接口优先级的设置,让它在切换网络时不会直接中断现有VPN连接:

    1. 打开终端,编辑NetworkManager的配置文件:
    sudo nano /etc/NetworkManager/NetworkManager.conf
    
    1. [main]区块下添加一行:
    ignore-carrier=yes
    

    这会让NetworkManager忽略网络接口的载波状态变化,减少不必要的连接中断
    3. 保存后重启NetworkManager:

    sudo systemctl restart NetworkManager
    
  • 检查学校网络的VPN限制机制
    有些学校网络是通过检测VPN的特征(比如OpenVPN的端口、协议)来拦截的,你可以试试换用不同的VPN协议端口:

    • 比如把OpenVPN的默认UDP 1194改成TCP 443(很多学校不会拦截443端口,因为是HTTPS的默认端口)
    • 或者改用WireGuard协议,它的流量特征更隐蔽,不容易被检测到

备注:内容来源于stack exchange,提问作者Zaph

火山引擎 最新活动