网络相关

PVE 改网关走旁路由代理:让 PVE 直连 GitHub(含改回方法)

2026-08-07 15 次阅读 1041 字 · 3 分钟

PVE 改网关走旁路由代理:让 PVE 直连 GitHub(含改回方法)



PVE 主机在国内网络环境下直连 GitHub 经常失败,典型表现是执行 curl 时连接被掐断:

curl: (56) OpenSSL SSL_read: unexpected eof while reading


如果你家里有一台能访问外网的旁路由(透明代理模式),最简单的解决办法是把 PVE 的网关直接指向旁路由,让 PVE 的所有出网流量都走它,之后访问 GitHub 就不会再断流。例如用 RR 一键脚本在 PVE 上部署群晖 DVA1622 之前,就需要先解决这一步。

一、前提条件



  • PVE 与旁路由在同一网段,能互相访问

  • 旁路由已开启网关模式 / 透明代理(把其他设备的网关指向它后能正常上网)

  • 能通过 SSH 登录 PVE(同网段通信不经过网关,改配置期间不会掉线)


  • 本文所有地址均为示例:

    设备地址
    PVE 主机192.168.1.100
    主路由192.168.1.1
    旁路由(透明代理)192.168.1.10


    二、修改 PVE 网关



    1. 备份当前配置



    cp /etc/network/interfaces /etc/network/interfaces.bak
    


    2. 查看当前配置



    cat /etc/network/interfaces
    


    典型输出:

    auto lo
    iface lo inet loopback
    
    iface enp1s0 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
            address 192.168.1.100/24
            gateway 192.168.1.1
            bridge-ports enp1s0
            bridge-stp off
            bridge-fd 0
    


    3. 把网关改为旁路由



    直接替换旧地址,命令里没有特殊符号,不容易出错:

    sed -i 's/gateway 192.168.1.1/gateway 192.168.1.10/' /etc/network/interfaces
    


    确认修改结果:

    grep -n 'gateway' /etc/network/interfaces
    


    4. 可选:把 DNS 也指到旁路由



    sed -i '/bridge-fd 0/a\        dns-nameservers 192.168.1.10 223.5.5.5' /etc/network/interfaces
    


    5. 重载网络并验证



    ifreload -a
    ip route
    


    默认路由应显示为:

    default via 192.168.1.10 dev vmbr0
    


    再验证 GitHub 是否可访问:

    curl -I --connect-timeout 8 https://github.com
    


    返回 HTTP/2 200 即表示已成功。

    三、改回原来的网关



    方法一:还原备份(推荐,一步到位)



    cp /etc/network/interfaces.bak /etc/network/interfaces
    ifreload -a
    


    备份是在修改前保存的,还原后网关、DNS 全部回到原始状态。

    还原后建议先确认一下配置没有异常:

    cat /etc/network/interfaces
    grep -n 'gateway' /etc/network/interfaces
    


    如果 ifreload -a 报错 line1: error processing line ']auto lo' 之类,说明备份文件第一行混入了多余字符,先删掉再重载:

    sed -i '1s/^]//' /etc/network/interfaces
    ifreload -a
    


    还原成功后,建议把这份干净的配置重新存为备份,避免备份文件本身有问题:

    cp /etc/network/interfaces /etc/network/interfaces.bak
    


    方法二:只改回网关



    sed -i 's/gateway 192.168.1.10/gateway 192.168.1.1/' /etc/network/interfaces
    ifreload -a
    


    > 命令中的 IP 是本文示例(192.168.1.x 为假地址),执行前请替换成你实际的旁路由地址和原网关地址,否则 sed 匹配不到、不会生效。

    四、注意事项



  • 修改网关不影响同网段 SSH:PVE 和你的电脑在同一网段,局域网通信不经过网关,即使改错了也能 SSH 进去还原。

  • 改网关只影响 PVE 宿主本身;桥接出来的虚拟机(如 DSM)走自己的网络,不受宿主网关影响。

  • 前提是旁路由必须开启了网关 / 透明代理模式;如果没开,把网关指过去会直接没有外网,改回原网关即可恢复。

  • 改回原网关后,PVE 又无法直连 GitHub,需要时再切换回来,两步操作即可完成。

  • 如果虚拟机本身也需要访问 GitHub(例如 RR 编译引导阶段),把虚拟机的静态 IP 网关也指到旁路由即可。

  • 还原后用 ip route 确认默认路由为 default via 原网关 dev vmbr0,即表示恢复成功。

评论(0)

3 + 8 =
← 返回首页