更新到5.X后,VPN Server拨入无法上网无法访问内网最终解决方法
发表于 : 2023年 11月 1日 星期三 1:40 am
更新到5.X后,VPN Server拨入无法上网无法访问内网最终解决方法
原提问贴:
https://forum.terra-master.com/cn/viewt ... =48&t=3649
提问问了一圈发现客服不懂技术,于是只能自己折腾,测试openvpn、pptp,成功拨入后均无法上网、无法访问内网地址,只能访问vpn分配的虚拟ip
经过多次测试发现是防火墙iptables问题,在ssh下执行iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j MASQUERADE,执行后,拨入的客户端就可以正常上网和访问tnas所在内网ip了
按理说铁威马不会范这么低级的防火墙没开转发的错误,于是检查最终的执行脚本/Volume1/@apps/VPN_Server/etc/VPNServer/openVPN,发现在判断网卡名称的这句defaultgwdev=$(route -n | awk '$1=="0.0.0.0" {print $8}')里defaultgwdev变量获得到的网卡地址变成了
eth1
eth1
两行,对的,你没看错,defaultgwdev获得的字符串变成了两行
所以下面的iptables命令
iptables -t nat -A POSTROUTING -s "$localip"/24 -o $defaultgwdev -j MASQUERADE
经过拼接后变成了
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1
eth1 -j MASQUERADE
这样的,当然会报错,也就是本该由防火墙放行转发的这句没执行
最后解决:
修改/Volume1/@apps/VPN_Server/etc/VPNServer/openVPN
这个sh脚本里的第九行
defaultgwdev=$(route -n | awk '$1=="0.0.0.0" {print $8}')
修改为
defaultgwdev=$(route -n | awk '$1=="0.0.0.0" {print $8;exit}')
保存,即可解决,希望铁威马VPNServer插件可以更新修复一下,谢谢
原提问贴:
https://forum.terra-master.com/cn/viewt ... =48&t=3649
提问问了一圈发现客服不懂技术,于是只能自己折腾,测试openvpn、pptp,成功拨入后均无法上网、无法访问内网地址,只能访问vpn分配的虚拟ip
经过多次测试发现是防火墙iptables问题,在ssh下执行iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j MASQUERADE,执行后,拨入的客户端就可以正常上网和访问tnas所在内网ip了
按理说铁威马不会范这么低级的防火墙没开转发的错误,于是检查最终的执行脚本/Volume1/@apps/VPN_Server/etc/VPNServer/openVPN,发现在判断网卡名称的这句defaultgwdev=$(route -n | awk '$1=="0.0.0.0" {print $8}')里defaultgwdev变量获得到的网卡地址变成了
eth1
eth1
两行,对的,你没看错,defaultgwdev获得的字符串变成了两行
所以下面的iptables命令
iptables -t nat -A POSTROUTING -s "$localip"/24 -o $defaultgwdev -j MASQUERADE
经过拼接后变成了
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1
eth1 -j MASQUERADE
这样的,当然会报错,也就是本该由防火墙放行转发的这句没执行
最后解决:
修改/Volume1/@apps/VPN_Server/etc/VPNServer/openVPN
这个sh脚本里的第九行
defaultgwdev=$(route -n | awk '$1=="0.0.0.0" {print $8}')
修改为
defaultgwdev=$(route -n | awk '$1=="0.0.0.0" {print $8;exit}')
保存,即可解决,希望铁威马VPNServer插件可以更新修复一下,谢谢