Nginx 看到 OpenVPN Linux 客户端有其公共 IP 地址,而 Android 客户端则看到私有 VPN IP 地址

Nginx 看到 OpenVPN Linux 客户端有其公共 IP 地址,而 Android 客户端则看到私有 VPN IP 地址

我已经在 NGINX 配置中设置了以下虚拟服务器:

server {
   listen 80;
   listen [::]:80;   
   server_name ip.myserver.com; 
   location / {
     default_type text/plain;
     return 200 "$remote_addr\n";
   }
}

我的想法是,我有一些其他虚拟服务器,我只想使用同一台机器上的 OpenVPN 连接来访问它们。使用此测试站点,它应该显示私有 IP 地址(如果未连接到 VPN,则显示公共 IP 地址)。

我的 Android 手机运行正常:

在没有 VPN 连接的情况下连接到该网站时,它会显示以下内容:192.0.2.222。(当然,它实际上有另一个地址。)

当使用 VPN 连接连接到站点时,将显示以下内容10.8.0.3,这是正确的结果,因为它显示设备正在使用 VPN 连接,并且由于 VPN 服务和 Nginx 服务器位于同一台机器上,因此 Nginx 可以看到 VPN 的私有 IP。

当我在我的 Linux 机器上执行此操作时,如果不使用 VPN 连接连接到服务器,它会显示 Linux 机器的公共 IP 地址,而使用 VPN 连接时,它会显示服务器的公共 IP 地址,这不是我所期望的。

我怀疑我的 Linux 笔记本电脑上的 OpenVPN 配置方式有问题,因为 Android 手机运行正常。

OpenVPN服务器配置:

port 1194
proto udp6
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 94.140.14.14"
push "dhcp-option DNS 94.140.15.15"
push "redirect-gateway def1 bypass-dhcp"
server-ipv6 fd42:42:42:42::/112
tun-ipv6
push tun-ipv6
push "route-ipv6 2000::/3"
push "redirect-gateway ipv6"
dh none
ecdh-curve prime256v1
tls-crypt /etc/openvpn/tls-crypt.key
crl-verify /etc/openvpn/crl.pem
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server_key.crt
key /etc/openvpn/server_key.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
verb 4

OpenVPN 客户端文件(不含密钥):

client
proto udp
explicit-exit-notify
remote 192.0.2.222 1194 # Changed this  for display.
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_key name # Changed this because not sure if private info
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3

相关内容