我的设置:
- 路由器:Unifi USG 本地 IP
10.1.1.1/32
,端口1194/udp
转发至10.1.1.20:1194
- Unraid 服务器上装有 Docker 容器。
- OpenVPN 容器 (kylemanna/openvpn) 安装在嵌入式 MacVlan 网络上,IP 地址为
10.1.1.20/32
。我这样做是因为我的其他容器都是这样。容器配置为在子网中分发 IP 地址192.168.255.0/24
。 - 我已经添加了
push "dhcp-option DNS 10.1.1.2"
我的本地 Pi-Hole,并配置了本地 DNS。
从我的客户端(Windows 10 计算机,位于与 OpenVPN 服务所在的本地网络不同的本地网络中),我可以连接到 VPN 并按预期获取 IP 地址(即我得到192.168.0.5
)。连接后:
- 我可以通过 IP 或在 PiHole 中注册的主机名 ping 我的其他容器(即
ping 10.1.1.11
和ping service.local
) - 我也可以通过 IP 和主机名访问这些服务的 Web UI。速度非常好(两个客户端都有 1Gbps 光纤 :))
- 我可以 ping 公共 IP,例如
ping 1.1.1.1
或ping 8.8.8.8
- 我可以 ping 如下域名
ping google.com
- 如果我执行
tracert 8.8.8.8
,则第一跳是192.168.255.1
,第二跳是10.1.1.1
,然后它会转到我的 ISP。一切如预期。
但是...当我尝试加载网页时,它不起作用,最终An error occurred during a connection to serverfault.com. PR_CONNECT_RESET_ERROR
从容器生成的默认配置文件中,我在openvpn.conf
服务器端只添加了3行:
push "dhcp-option DNS 10.131.10.2"
push "redirect-gateway def1"
push "route 0.0.0.0 0.0.0.0"
我的*.ovpn
客户端:
client
nobind
dev tun
remote-cert-tls server
remote openvpn.example.com 1194 udp
<key>
-----PRIVATE KEY-----
</key>
<cert>
-----CERTIFICATE-----
</cert>
<ca>
-----CERTIFICATE-----
</ca>
key-direction 1
<tls-auth>
-----OpenVPN Static key V1-----
</tls-auth>
redirect-gateway def1
我openvpn.conf
在服务器端
server 192.168.255.0 255.255.255.0
verb 4
key /etc/openvpn/pki/private/openvpn.example.com.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/openvpn.example.com.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key
key-direction 0
keepalive 10 60
persist-key
persist-tun
proto udp
# Rely on Docker to do port mapping, internally always 1194
port 1194
dev tun0
status /tmp/openvpn-status.log
user nobody
group nogroup
comp-lzo no
### Route Configurations Below
route 192.168.254.0 255.255.255.0
### Push Configurations Below
push "block-outside-dns"
push "dhcp-option DNS 10.1.1.2"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
push "comp-lzo no"
push "redirect-gateway def1"
push "route 0.0.0.0 0.0.0.0"
我应该去哪里寻找解决方案?