我在 Ubuntu 16.04 上与 IOS 11 IKEv2 客户端上使用 Linux strongSwan U5.3.5/K4.4.0-116-generic。
可以在我的客户端(IOS 11)上成功建立连接,如果我转到 ip 检查网页,例如 myip.com,它会显示 VPN 服务器的地址。
但是,我发现如果我连接到同一台服务器上用于 HTTPS 的自定义端口,即使建立了 IKEv2,它也可能会被我的邪恶 nat 防火墙阻止。
我的理解是 IPSEC 将通过端口 500/4500 创建隧道,并使所有流量加密。因此,我想知道我的公司或其他(国家级)防火墙将如何区分不同的流量?即在任意端口上丢弃我的 https 请求。
我尝试直接使用 ip 地址访问,即https://xx.xx.xx.xx:12345,但似乎没有什么区别。
我怀疑这个隧道不是端到端(我的 iPhone 到服务器)隧道。由于我的 iPhone 位于 NAT 后面,因此从我的 IOS 到公司网关的连接未加密。这是原因吗?
这是 ipsec.conf 连接:
config setup
cachecrls=yes
uniqueids=yes
charondebug=""
conn %default
keyingtries=%forever
dpddelay=30s
dpdtimeout=120s
conn IKEv2-EAP-TLS
auto=add
type=tunnel
keyexchange=ikev2
dpdaction=clear
dpddelay=300s
authby=pubkey
left=%SERVERIP%
leftid=%SERVERIP%
leftsubnet=0.0.0.0/0
leftcert=vpnSrvCert.der
leftsendcert=always
right=%any
rightid=%any
rightsourceip=10.10.10.0/24
rightdns=8.8.8.8,8.8.4.4
rightauth=eap-tls
[更新] 经过反复尝试,我相信原因正如 BillThor 所述。我发现在无审查 WIFI 环境中,当我连接到同一台 (IKEv2) server1 上的 HTTPS 端口时,它是一个单独的 TCP 链接。
另一方面,当我从受审查的 WIFI 内部连接到另一个 L2TP 服务器 2(不是 HTTPS)时,我可以成功连接到原始服务器 1 的 HTTPS 端口。
答案1
VPN 流量很容易通过数据包检查检测到,或者在这种情况下,只需通过正在使用的端口即可检测到。您的公司很可能知道您正在尝试或做什么。
如果您尝试访问与用于连接 VPN 的 IP 地址相同的 IP 地址,则不会将其发送到 VPN。至少,VPN 服务器的地址是直接连接的。VPN 可能能够路由 VPN 未使用的端口的目的地。
由于您的右侧位于 10.0.0.0/8 私有地址空间中,您的 IP 地址将在您的终端进行网络地址转换。如果同一 LAN 上的多个设备连接到同一远程 VPN 服务器,则很容易出现故障。
如果您希望浏览器流量始终路由到 VPN,则需要将浏览器配置为使用可通过 VPN 访问的地址上的代理服务器。如果您的地址显示为您的本地 IP 地址,则表示正在穿越 VPN。