网络相关
PVE 改网关走旁路由代理:让 PVE 直连 GitHub(含改回方法)
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 匹配不到、不会生效。
四、注意事项
ip route 确认默认路由为 default via 原网关 dev vmbr0,即表示恢复成功。
评论(0)