![如何配置 OpenVPN 以访问本地客户端](https://linux22.com/image/1524029/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20OpenVPN%20%E4%BB%A5%E8%AE%BF%E9%97%AE%E6%9C%AC%E5%9C%B0%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
编辑2:根据我下面的第一次编辑,我确定 OpenVPN 在公共环境中连接良好,并通过它路由所有流量。真正的问题是,我该如何配置我的文件以便我的桌面客户端能够成功通过 OpenVPN 路由?
我希望我的桌面能够享受 VPN 屏蔽的所有好处,并且很可能允许使用我的笔记本电脑从公共热点远程连接它(尽管这可能完全是另一个问题)。
我的路由器网关地址是 192.168.1.254,台式机通过 192.168.1.150 连接,服务器通过 192.168.1.180 连接。我的笔记本可以通过公共 Wifi 连接服务器,但通过 Wifi 连接本地路由器时无法连接。
原始问题 - OpenVPN 无法访问 HTTP 服务器
我按照这个教程操作(https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04) 在我的网络服务器上设置 VPN。
OpenVPN 客户端可以很好地连接到服务器(至少我认为是这样),并且可以访问几个使用 HTTPS 的网站;但是,它无法访问任何常规 HTTP 网站,并且连接往往会在五分钟左右后断开
目前,我不太确定某些文件上的 IP 设置是否正确,因为指南没有明确说明某些 IP 地址应该是什么。我不确定某些 IP 地址是否应该指向网关路由器或服务器的公共 IP。
我需要修复以下文件中的哪些内容来帮助我维护与服务器的 OpenVPN 连接并通过它路由所有流量?
有用的事实:
- 台式机运行 Windows 10 和 OpenVPN GUI v11.4.0.0;服务器运行 Ubuntu Server 16.04。如果我的台式机一切正常,我希望能够使用我的一台笔记本电脑(装有 Windows 10 Pro 和 Ubuntu Desktop 16.04.2)从我的大学校园远程连接到服务器
- 桌面和服务器都连接到路由器上的同一个 LAN。
- 路由器的防火墙配置为将端口 1194 上的请求转发到服务器。
- 这些文件中遗漏了一些被注释掉的行。如果我需要重新编辑它们,或者添加特定的日志文件,请告诉我。
- 根据指南建议,证书和密钥写在 client1.ovpn 文件中,我已在这篇文章中注释掉了这些数据
/etc/openvpn/server.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.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 xxx.xxx.xxx.xxx" #My server's public IP
;push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
key-direction 0
cipher AES-128-CBC # AES
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
/etc/ufw/before.rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
#Rest of file left out for brevity
客户端1.ovpn
client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194 #My server's public IP
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
cipher AES-128-CBC
auth SHA256
key-direction 1
remote-cert-tls server
comp-lzo
verb 3
<ca>
-----BEGIN CERTIFICATE-----
# Certificate string exists here
-----END CERTIFICATE-----
</ca>
<cert>
# Certificate data
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
#Private key here
-----END PRIVATE KEY-----
</key>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
#OpenVPN static key
-----END OpenVPN Static key V1-----
</tls-auth>
编辑
更新:我为我的笔记本电脑创建了客户端 2 配置,并于今天早上将笔记本电脑带到学校网络。在那个环境中,OpenVPN 现在运行良好,因此问题与我的台式机和笔记本电脑与我的服务器位于同一 LAN 下有关,这导致了上述连接问题。
现在我确信 OpenVPN 确实有效,但是在同一个 LAN 下尝试连接它时会出现一些问题,我可以对这个特定问题进行一些研究,如果确实存在这个问题,我可以提出一个新问题。
答案1
测试 VPN 的唯一正确方法是配置与 VPN 服务器不在同一网络内的设备。
虽然在某些情况下内部网络 VPN 很有用(例如确保隐私和资源隔离),但它们仅在企业环境中可行。此外,还有其他方法可以防止个人访问其角色不需要的资源,例如虚拟局域网 (VLAN)。
至于您的配置文件,我没有发现任何错误。我将它们与我用于 VPN 的配置文件进行了比较,没有发现任何不一致之处。尝试按照您的台式机的设置方式配置您的一台笔记本电脑。我敢打赌它会起作用,但如果不成功,请更新您的问题。如果是后者,我敢打赌您服务器中的 VPN 服务可能有问题。