背景
我的 Debian VPS 机上有一个 OpenVPN 服务器。
目的是
绕过防火墙(我的 ISP 封锁了 TCP 端口 25)
通过不受信任的网络启用安全连接(主要用于便携式机器,但你永远不知道)
允许对等体之间的连接(用于远程 SSH/VNC 故障排除)
我已经验证并配置了两个客户端(到目前为止),一台 Debian Squeeze 笔记本电脑和一台 Ubuntu 12.04 台式机来连接到此 VPN。
问题
两个客户端的 VPN 连接都正常。但 Ubuntu 设备无法连接到 VPN 之外(甚至无法使用 IP 地址)。
两个客户端都是使用网络管理器设置的,我唯一改变的默认设置是隧道使用 TCP 连接到端口 110。
有什么提示下一步该看哪里吗?
数据
服务器.conf:
port 110
proto tcp
dev tun
ca ca.crt
cert myvpn.crt
key myvpn.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.8.0.1"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
连接“坏”盒子(89.x.y.z
是我的 VPS)后的路由:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.5 0.0.0.0 UG 0 0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
89.x.y.z 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
以及“好”框:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.13 0.0.0.0 UG 0 0 0 tun0
10.8.0.1 10.8.0.13 255.255.255.255 UGH 0 0 0 tun0
10.8.0.13 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
89.x.y.z 192.168.1.1 255.255.255.255 UGH 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
(测试时,两者都在同一个本地网络中。)
和 VPS:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
89.x.y.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 89.x.y.1 0.0.0.0 UG 0 0 0 eth0
答案1
您需要编辑 VPS 的路由并添加默认网关。同时,您还必须确保已ip forwarding
通过启用echo 1 > /proc/sys/net/ipv4/ip_forward
。
编辑:路由表中必须有一行表示如果没有找到数据包的目的地,那么它必须被路由到默认网关;这是我的:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
您可以使用添加新的默认网关条目route add default gw 192.168.1.1
。确保 VPS 和客户端中的路由表都是最新的