已解决 Forbidden 403:从 openvpn 网络访问私人网站(客户端使用 public ip 而不是 openvpn ip)
SOLVED Forbidden 403: access private web site from and to openvpn network (client use public ip instead openvpn ip)
我正在尝试访问私人网站 from/to 一个 openvpn 网络。但是,nginx 在 access.log 中告诉客户端使用他的 public IP 而不是他的私有 openvpn ip。
在这里你可以看到我的网络:
OpenVPN server (tun mode):
10.10.10.1 (server public ip)
172.17.0.1 (docker bridge)
172.17.0.2 (openvpn server container)
192.168.255.1 (openvpn server private ip)
My client :
10.10.10.2 (public ip)
192.168.255.10 (openvpn private ip)
mywebsite.domain.com : this is my private web site i'm trying to access.
nginx conf :(此 nginx conf 的允许行不起作用...)。 “位置参数在这里并不重要”。
allow 192.168.255.10/32;
deny all;
location / {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://localhost:9000;
}
我尝试连接“我的客户”时遇到 403 禁止。
如果我使用这个 nginx conf :
allow 10.10.10.2;
那么,mywebsite.domain.com就可以正常工作了。
所以...为什么“我的客户端”不使用内部 openvpn IP? (即 192.168.255.10)。在 nginx access.log 中,我可以看到我的客户端使用他的 public ip.
我澄清一下,除了这一点,我的 openvpn 服务器似乎工作正常。例如,当我使用客户端导航到 Internet 时,外部网站会看到服务器 (10.10.10.1) 的 public ip。我用 mon-ip.io 来检查。
有人有想法吗?
提前致谢!
已解决!
https://serverfault.com/questions/858657/openvpn-and-website-on-the-same-server-ip
这是路由问题。
为了建立和维护与您的 VPN 的连接,您的 VPN 客户端必须有一个路由到您在服务器上用于传入 VPN 连接的地址。假设采用标准路由,这意味着任何发往同一 IP 的 VPN 服务器都将直接通过 Internet。
选项。
简短的基本答案是为您的 VPN 服务器获取并使用单独的 IP 地址。不要将您用于 VPN 的 IP 用于其他任何用途。
在您的 VPN 主机上设置一些 DNS 服务器,并在您连接时为映射到内部 IP 地址的托管站点传送记录。
如果您是 运行 Linux 作为您的客户,那么您可以乱用策略路由和多个 table,然后发送只有 1194 流量通过标准 table,端口 http/https 流量通过 VPN。
我正在尝试访问私人网站 from/to 一个 openvpn 网络。但是,nginx 在 access.log 中告诉客户端使用他的 public IP 而不是他的私有 openvpn ip。
在这里你可以看到我的网络:
OpenVPN server (tun mode):
10.10.10.1 (server public ip)
172.17.0.1 (docker bridge)
172.17.0.2 (openvpn server container)
192.168.255.1 (openvpn server private ip)
My client :
10.10.10.2 (public ip)
192.168.255.10 (openvpn private ip)
mywebsite.domain.com : this is my private web site i'm trying to access.
nginx conf :(此 nginx conf 的允许行不起作用...)。 “位置参数在这里并不重要”。
allow 192.168.255.10/32;
deny all;
location / {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://localhost:9000;
}
我尝试连接“我的客户”时遇到 403 禁止。
如果我使用这个 nginx conf :
allow 10.10.10.2;
那么,mywebsite.domain.com就可以正常工作了。
所以...为什么“我的客户端”不使用内部 openvpn IP? (即 192.168.255.10)。在 nginx access.log 中,我可以看到我的客户端使用他的 public ip.
我澄清一下,除了这一点,我的 openvpn 服务器似乎工作正常。例如,当我使用客户端导航到 Internet 时,外部网站会看到服务器 (10.10.10.1) 的 public ip。我用 mon-ip.io 来检查。
有人有想法吗?
提前致谢!
已解决! https://serverfault.com/questions/858657/openvpn-and-website-on-the-same-server-ip
这是路由问题。
为了建立和维护与您的 VPN 的连接,您的 VPN 客户端必须有一个路由到您在服务器上用于传入 VPN 连接的地址。假设采用标准路由,这意味着任何发往同一 IP 的 VPN 服务器都将直接通过 Internet。
选项。
简短的基本答案是为您的 VPN 服务器获取并使用单独的 IP 地址。不要将您用于 VPN 的 IP 用于其他任何用途。
在您的 VPN 主机上设置一些 DNS 服务器,并在您连接时为映射到内部 IP 地址的托管站点传送记录。
如果您是 运行 Linux 作为您的客户,那么您可以乱用策略路由和多个 table,然后发送只有 1194 流量通过标准 table,端口 http/https 流量通过 VPN。