首页 > 解决方案 > VPN 服务器无法从外部访问自身

问题描述

我通过谷歌云 ubuntu 机器在 docker 上使用 softether VPN。当我在我的计算机上连接到它的客户端并获取我的外部 IP 时,我得到了 VPN 的 IP,因此得到了谷歌云机器的 IP。

当我尝试连接被谷歌云防火墙阻止的其他机器时,我可以访问。此外,当我试图在内部访问谷歌云机器上的服务时,它可以工作,但是当我尝试通过 VPN(位于固件白名单中)从外部访问谷歌云机器时,我无法访问。

同样的现象也发生在 AWS 上。我也尝试过打开 vpn,但它也不起作用。

这是我用于 softether VPN 的 docker compose 文件:

version: '3'

services:
  softether:
    image: siomiz/softethervpn
# with host mode - maybe the services on vpn host is not accessible, like http, etc..
    privileged: true
    cap_add:
      - NET_ADMIN
#    network_mode: host
# with normal mode - you cant add any local bridge, but every service on vpn host is accessible
    ports:
      - '500:500/udp'
      - '4500:4500/udp'
      - '1701:1701/tcp'
      - '5555:5555/tcp'
    environment:
      - PSK=${PSK}
      - USERS=${USERS}
    restart: unless-stopped

谷歌防火墙规则:

在此处输入图像描述

同样,我可以通过浏览器使用内部 IP 访问机器的服务,但不能使用外部 IP。我确定:

  1. FW 规则在同一个网络中
  2. 这是入口规则
  3. 外部IP正确
  4. 我可以访问其他机器上的其他服务(通过不同的规则)
  5. 从我的计算机使用 VPN 时,我的外部 IP 地址正在更改

有任何想法吗?

标签: dockernetworkinggoogle-cloud-platformvpnfirewall

解决方案


经过一番思考(并与他人讨论),我现在相信这完全是另一回事。

据我所知,您正在尝试的在技术上是不可能的,因此我将完全更改此答案,将旧答案留在底部。

您有一个主机 VM(在 Compute Engine 中)运行您的容器,充当 VPN,但它位于 NAT 后面。您可以使来自 Internet 的机器(至少在您的 VPC 之外)成功连接到您的 VPN。它是按设计进行 NAT 的

如果网络接口分配有外部 IP 地址,Google Cloud 会自动对来源与接口的主要内部 IP 地址匹配的数据包执行一对一 NAT,因为网络接口满足 Google Cloud 互联网访问要求。接口上是否存在外部 IP 地址始终优先并始终执行一对一 NAT,而不使用 Cloud NAT。

这意味着没有实际的外部 IP 连接到您的 VM 的以太网接口(您可以使用ifconfigip address命令检查它)。

所以 - 当您尝试连接(如果您的 VPN 服务器所在的 VPC 从内部)到自身(但使用它的外部 nat'ed 地址)时,由于路由问题,您将无法连接。

如果您使用 VPC **,来自外部的所有连接都通过的 GCP 的 NAT 将不会“知道”从内部发送的数据包 ** - 我与在几个路由器上进行此实验的人交谈,结果是相同的 -没有联系(使用简单的词)。

如果您想从 VPC 内部连接到您的 VPN 容器 - 使用它的内部地址。我不知道有什么办法。

如果您想在 GCP 中保护您的 VPN 服务器,请考虑为此使用IAP 。. . .

-.-.-.-.-.-.-.- __ 旧 ______ 答案 __ -.-.-.-.-.-.-.-

您的compose文件看起来不错,我只建议您尝试将撇号字符更改为引号字符:

    ports:
      - "500:500/udp"
      - "4500:4500/udp"
      - "1701:1701/tcp"
      - "5555:5555/tcp"

如果这不起作用,请检查与 Jenkins VM 的连接;

您还可以使用实用程序检查打开的端口- 请参阅我关于如何使用 nmapnmap的其他答案。

如果这没有帮助,请通过此查看如何在容器中运行 SoftEther VPN


推荐阅读