Ubuntu 14.04迁移至22.10后VPN访问配置故障求助
看起来你把公司的网关服务器从Ubuntu 14.04升级到22.10后,用户能正常访问文件服务器和互联网,但VPN对应的10.26.60.1上的Web应用出了问题。我对比了新旧配置,找到了几个关键的缺失项,咱们一步步来修复:
1. 找回缺失的VPN网段IP配置
原来的Ubuntu 14.04里,eth2网卡有个别名eth2:2,对应IP10.26.97.201/24——这是服务器连接到VPN相关网段的关键入口,但你现在的netplan配置里完全没加这个地址。
修改你的/etc/netplan/00-installer-config.yaml,在enp2s0的addresses里新增这个IP,同时补上静态路由配置:
network: ethernets: enp3s1: addresses: - 192.168.1.2/24 gateway4: 192.168.1.1 dhcp4: false dhcp6: false optional: true nameservers: addresses: [192.168.101.99] search: [iasu.local] enp2s0: addresses: - 192.168.101.201/24 - 192.168.102.201/24 - 10.26.97.201/24 # 新增原eth2:2的IP地址 dhcp4: false optional: true nameservers: search: [iasu.local] addresses: - 192.168.101.99 - 8.8.8.8 # 添加对应原14.04的静态路由规则 routes: - to: 10.26.60.1/32 via: 10.26.97.1 metric: 100 version: 2
2. 应用netplan配置
修改完配置文件后,执行以下命令让配置生效:
sudo netplan generate sudo netplan apply
这一步会帮你加载新增的IP地址和静态路由,替代原14.04里up route add的作用。
3. 补充iptables的NAT规则
你的iptables规则里,只给192.168.101.0/24和192.168.102.0/24加了MASQUERADE,但还需要给10.26.97.0/24网段也加上,确保VPN相关的流量能正确做地址转换。
编辑/etc/iptables/rules.v4,在*nat段的POSTROUTING链里新增一行:
-A POSTROUTING -s 10.26.97.0/24 -o enp3s1 -j MASQUERADE
保存后执行以下命令让规则生效:
sudo iptables-save > /etc/iptables/rules.v4 sudo iptables-restore < /etc/iptables/rules.v4
4. 确认IP转发已开启
最后检查一下系统的IP转发功能是否开启,这是网关服务器的必备配置:
# 临时生效 sudo sysctl -w net.ipv4.ip_forward=1 # 永久生效,编辑/etc/sysctl.conf,确保net.ipv4.ip_forward=1这一行没有被注释 sudo nano /etc/sysctl.conf # 保存后生效 sudo sysctl -p
做完这些步骤后,让用户测试访问http://10.26.60.1/arhiv应该就能正常打开了。如果还是有问题,可以用route -n检查路由表是否存在10.26.60.1的条目,或者用iptables -t nat -L -n确认NAT规则已经生效。
备注:内容来源于stack exchange,提问作者Bokica

