![将 VPN 流量代理到 Socks 或第二个 VPN](https://linux22.com/image/714877/%E5%B0%86%20VPN%20%E6%B5%81%E9%87%8F%E4%BB%A3%E7%90%86%E5%88%B0%20Socks%20%E6%88%96%E7%AC%AC%E4%BA%8C%E4%B8%AA%20VPN.png)
我有一台 Ubuntu 16.04 服务器,其中运行 xl2tp 和 openvpn 作为 VPN 服务器。但是,我希望服务器本身连接到 SOCKS 代理或另一个 OpenVPN 连接。即:
client --> server --> vpn or socks server --> internet
现在,如果我从服务器的终端执行curl
或wget
请求(例如https://api.ipify.com/
),它的流量显然会通过第二个 vpn 或 socks(我都试过了)。但是,如果我通过 l2tp 或 openvpn 将客户端连接到服务器,然后从客户端尝试相同的curl
或wget
,它的流量会直接从服务器退出,而不是通过第二个 vpn / socks 代理的路由器。
换句话说,虽然我想要的是:
client --> server --> vpn or socks server --> internet
我得到的却是:
client --> server +---(server-native traffic)---> vpn2/socks --> internet
|
+---(client vpn traffic)----> internet
如何才能实现强制将 VPN 客户端的流量进入第二个 VPN 或 Socks 代理的结果?
我想透明地做到这一点- 我无法控制客户端如何连接到服务器,但我可以控制服务器。
答案1
自从我发布这个问题(神圣的存在主义恐惧蝙蝠侠!)以来,已经过去了五 (5) 年——几乎是今天。为了任何通过网络搜索来到这里的人的利益:
使用 Wireguard
我很久以前就解决了我的问题WireGuard,自 5.6(2020 年 3 月)起编译到 Linux 内核中。有适用于移动、桌面和服务器平台的实用程序。
对于那些不想使用 wireguard 或需要 tor 代理的人,@HappyFace 最近评论说有示例配置在一个新的以伊朗为中心的 Github 项目中。我不知道它们是否有用。
Wireguard 满足了我的所有需求。它的网络方案更加简单,也更容易学习。