我在 Ubuntu 16.04 服务器上配置了 OpenVPN。我可以从一个网络使用此 VPN 服务,但不能从其他网络使用此 VPN 服务,因此非常感激任何帮助。
家庭网络
一切正常。我可以连接到 VPN 并从不同设备(macbook 和 android 手机)浏览网页。
工作网络
VPN 客户端已连接,但我无法在任何设备上浏览网页。Ping
主机名有效,因此可能不是 DNS 问题。
浏览器页面卡在连接状态,直到超时。Slack
客户端未连接,但 Dropbox 客户端报告已连接。
移动数据
与工作网络相同。
服务器配置
port 443
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
客户端配置
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote x.x.x.x 443 #My Server's IPAddress
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3
虽然此配置使用端口 443 ,但在使用默认端口 1194 时也遇到了同样的问题。
我也尝试过更改 DNS 推送配置并使用 Google DNS 服务器,但这没有任何区别。
希望有人可以帮忙。
答案1
我建议尝试使用 TCP 协议的端口 443。由于这是 HTTPS 端口,大多数防火墙不会探测 TCP 443 上的数据包,因为它们预计会被加密。因此,这使得 VPN 数据包有更好的机会通过防火墙:
proto udp
port 1194
我的第二个建议是,在与 OpenVPN 相同的服务器上运行 HTTP 代理(例如 Squid),并将其配置为监听端口 443。确保该服务器安全。使用代理,您可以让您的 Openvpn 服务器监听本地 IP 和默认端口,因为只有在本地主机上运行的代理服务才会真正连接到它。无需更改默认服务器配置:
# SERVER
proto udp
port 1194
# You can easily change the client. On the client, you can configure it to
# connect to the VPN over proxy by adding changing a couple of lines :
# CLIENT
proto udp
http-proxy <SERVER IP> 443
remote <SERVER IP> 1194
最后,如果以上方法都不起作用,你可以尝试寻找更好的 MTU。
答案2
您可以检查服务器日志来确认连接确实完成吗?
另外,这是您的完整客户端配置文件吗?
如果是这样,我不确定这是如何工作的,考虑到服务器已经tls-auth ta.key 0
- 您需要在两端进行配置(客户端使用 1 而不是 0)才能实际连接。
我将首先验证您的前提,然后按照其他人所建议的那样,开始关注工作中的路由表和防火墙。