將VPN連線路由到同一伺服器上的socks代理

將VPN連線路由到同一伺服器上的socks代理

我正在運行具有 OpenVPN 服務的 VPS。在同一台伺服器上,我還設定了一個本地襪子代理程式(它是Tor,但我認為這對於這種情況並不重要)。

我能否以某種方式將我的 VPN 連接路由到該襪子代理,而不需要對本地瀏覽器/設備設定進行任何更改?

我想要建立的連線看起來像

(my device) -> VPN tunnel -> (VPN server -> Tor SOCKS proxy) -> Tor network
                             (this connection is inside VPS)

我看到兩個選項

1) 路由完全發生在伺服器上,對客戶端來說是透明的

2)VPN推送socks代理選項(因為它可以推送路由、DNS伺服器等)

但我不知道如何實現其中任何一個。

我經常使用 OpenVPN 來繞過阻止,並且我想使用相同的例程從 Windows 和 Android 設備連接到 Tor 網絡,而無需更改代理設置、運行本地 tor/orbot 等。將所有流量路由至Internet 的常規VPN 連線(已設定且運作正常),但位於不同的連接埠上。

答案1

終於到了。

首先,您需要執行另一個 OpenVPN 執行個體。只需複製您的 openvpn/server.conf 並更改

port [some free port]
server [another subnet, if your first instance was on 10.8.0.0, set it to 10.8.1.0] 255.255.255.0
push "dhcp-option DNS [we will use TOR DNS, so this will be TOR proxy IP, e.g. 10.8.1.1]"

您可能想要產生另一個密鑰對。

然後以透明代理模式啟動 TOR(請注意,官方文件將此模式列為潛在不安全,請參閱https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy了解詳情)。它將作為您的網關和 DNS 伺服器。更改torrc附加此配置的預設文件

VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort [address in your subnet, e.g. 10.8.1.1]:9040 
DNSPort [same, 10.8.1.1]:53

最後將所有子網路請求路由到 TOR 代理程式(DNS 流量的特殊設定)

iptables -t nat -A PREROUTING -s [your subnet, e.g. 10.8.1.0/24] -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -s [your subnet, e.g. 10.8.1.0/24] -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040

確保您的防火牆允許內部 10.8.1.0 子網路流量。

連接到不同的連接埠將允許您透過 VPN 從 TOR 網路切換到常規網路連線。無需客戶端配置。

相關內容