我想创建一个包含两个不同 VPN 提供商的 VPN 链以及一个带有静态 IP 的虚拟专用服务器,因此配置将如下所示:
User ----> Commercial VPN ----> VPS ----> Another commercial VPN ----> Internet
这里使用 VPS 是因为它还有另一个 IP 地址。VPS 只有一个物理接口。基本上,它应该像三重 VPN 链一样工作。
我的问题是这是否可能,如果可以,我该如何配置 VPS 来接受来自一个 VPN 的数据包并通过另一个 VPN 重定向它们?
答案1
快速简便的匿名解决方案:
使用您信任的 VPN 提供商
使用商业 VPN 而不是商业 VPN
使用 TOR
量身定制的解决方案:
可以像这样链接 VPN,但有点棘手:client => vpn => vps => vpn => internet
1- 在 VPS 中设置 VPN 服务器并测试:client => vps(vpn) => internet
2- 为客户端的公共 IP 添加到 VPS 的静态路由:
Linux: ip route add <client pub ip> via <vps gateway>
Windows: route add -p <client pub ip> mask 255.255.255.255 <vps gateway>
当您在下一步将 VPS 连接到 VPN 服务时,这将使您的客户端远程会话保持连接到 VPS。
3-将 VPS 连接到 VPN 提供商并检查互联网连接:vps => vpn => Internet
4- 测试连接:'客户端 => vps(vpn)=> vpn => internet'
5- 将客户端连接到 vpn,然后拨号连接已经连接到另一个 vpn 的 vps(vpn) 到互联网:client => vpn => vps(vpn) => vpn => internet
将您的客户端连接到 vpn 后,只有当其监听其连接的 vpn 的发布 IP 时,您才能拨打 vps(vpn)。
或者
只需按照步骤 2 将您的第一个 VPN 的公共 IP 添加为到 VPS 的静态路由即可。
答案2
vps 链接的工作配置。VPS 链式测试
客户端 1================== vps1 ===================== vps2
1.1.1.1 ================== 2.2.2.2=================== 3.3.3.3
10.9.0.2 ==========>>>10.9.0.1
======================= 10.8.0.2 ============>10.8.0.1
在 vps1 中更改 iptables/route/rule
iptables -t nat -D POSTROUTING -s 10.9.0.0/24 ! -d 10.9.0.0/24 -j SNAT --to-source 2.2.2.2
iptables -A FORWARD -i tun0 -o tun1 -j ACCEPT
iptables -A FORWARD -i tun1 -o tun0 -j ACCEPT
iptables -A FORWARD -d 10.9.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -j SNAT --to-source 10.8.0.2
ip route add default via 10.8.0.2 table 120
ip rule add from 10.9.0.0/24 table 120
在 vps1 上编辑 Openvpn server.conf 文件
nano /etc/openvpn/server/server.conf
push "route 10.8.0.0 255.255.255.0"
route 10.8.0.0 255.255.255.0