StrongSwan 的 VPN 上的 IP 地址错误

StrongSwan 的 VPN 上的 IP 地址错误

我的服务器是 Ubuntu 20.04,并且安装并使用 Strongswan 运行 IKEv2 VPN。

我有一个 php 系统(与 VPN 安装在同一台服务器上),它被 IP 锁定。所以我使用我的 VPN 通过我的 IP 进入。(是的,我添加了 VPN 本地地址)

问题是它$_SERVER['REMOTE_ADDR']没有显示我的 VPN IP,但显示了我的移动运营商 IP。好像我是否使用 VPN 都无关紧要。

我真的不知道哪里出了问题。我尝试删除 DNS,但这样 VPN 就无法正常工作。有人知道如何解决这个问题吗?

这是 ipsec.conf:

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    ike=aes256-sha1-modp1024,3des-sha1-modp1024!
    esp=aes256-sha1,3des-sha1!
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    [email protected]
    leftsubnet=0.0.0.0/0
    #leftauth=eap
    #eap_identity=username
    right=%any
    rightid=%any
    rightdns=8.8.8.8,8.8.4.4
    rightsourceip=10.10.10.0/24
    authby=secret

答案1

即使所有流量都配置为通过隧道传输( 的目标leftsubnet=0.0.0.0/0),某些客户端也无法通过 VPN 连接到 VPN 服务器的公共 IP 地址。Apple 客户端(在您的情况下是 iOS)就是其中之一。

因此,要连接到服务器,您必须为其分配一个额外的 IP 地址并连接到该地址。这可以是第二个公共 IP 地址或任意虚拟 IP 地址。例如,您可以分配10.10.10.1给服务器的lo接口,然后将其10.10.10.2作为第一个虚拟 IP 分配给客户端(即 rightsourceip=10.10.10.2/24)。

确保不要将来自服务器虚拟 IP 的流量通过 NAT 发回客户端,例如通过插入以下规则(如果您遵循转发和拆分隧道在 strongSwan wiki 页面上,您可能已经有了这个或类似的规则):

iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT

相关内容