我的想法是:
我有一个连接到的外部vpn服务。但是,我是否有可能设置一个本地代理服务器来使用该vpn连接,那么连接使用vpn的代理的应用程序呢?这适用于Linux系统。
欢迎提示和链接!
编辑:用例:也许还有另一种方法可以做到这一点。
Router #1 - Connects by the default net provided by ISP
Router #2 - Connects by PPTP VPN to another 'ISP'
默认情况下,网络中的客户端连接到普通路由器#1,所有通信量都由该路由器处理。客户端有一个不同的浏览器(opera),它通过路由器#2上的代理进行连接,并在VPN隧道的末尾结束。
这个干净吗?
发布于 2015-03-10 19:05:09
六年后,我提出了这个问题,并根据公认的答案,几乎让它失望。到目前为止,它并不复杂,使用策略路由。所有的细节都可以在同一网站上获得,在https://serverfault.com/a/389004/70774。
在我的例子中,我首先必须确保vpn不是默认的路由。如何实现这一点取决于您使用的是哪种连接管理器。
代理(tinyproxy)是与它自己的用户一起运行的,所以我用命令标记来自这个用户的所有包。
iptables -t mangle -A OUTPUT -m owner --uid-owner 125 -j MARK --set-mark 2
其中125
是tinyproxy用户的uid,而2
是一个任意数字,以后再匹配。
然后,我指示路由系统使用一个特定的表来路由所有标记为2
的请求。
ip rule add fwmark 2 table 3
同样,3
只是一个任意的数字。只需祈祷注意选择一张未使用的桌子(只需看看是否有你用ip route list table 3
选择的桌子上的东西)。
然后,使用默认路由填充表3
:
ip route add default dev ppp0 via proto static scope link metric 1024
最后一步是制定一项伪装规则,我不完全理解其中的必要性:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
等等!
发布于 2021-01-10 23:41:49
通过使用鱿鱼及其tcp_outgoing_address xxx
参数,这变得非常容易:
apt install squid
nano /etc/squid/conf.d/proxy2vpn
# put this in: tcp_outgoing_address YOUR_VPN_NIC_IP (check ifconfig)
systemctl restart squid.service
默认情况下,Squid正在监听端口3128。
用法示例:
curl --proxy 127.0.0.1:3128 https://ipinfo.io
请求将首先通过Squid代理,然后通过VPN。
发布于 2009-07-20 10:36:07
也许我不明白你的问题,但试试这个:
https://serverfault.com/questions/42890
复制相似问题