根据需要通过 VPN 重定向流量

根据需要通过 VPN 重定向流量

我的问题非常简单,但听起来很复杂,但我对此的经验为零或没有。

我已经使用 gentoo 设置了一个盒子,它有自己的半静态 WAN-IP,并充当我的 LAN 的路由器。我可以访问网络上其他地方的路由器,该路由器具有动态 IP 并注册到 dyndns。我的计划是将特定流量从我的 gentoo-box 重定向到路由器,以利用隧道和动态 IP。

我的想法是在我的 gentoo-box 上安装一个代理,默认使用 VPN 连接到路由器。应允许 LAN 上的每台计算机和 WAN 上的特定计算机(有权访问代理)使用此代理,但不应强制任何流量通过路由器。这就排除了只使用 iptables 的想法。

示例:我想通过 VPN 重定向 Firefox 流量,但不重定向 Opera 流量。我将 Firefox 设置为使用本地代理,它获取远程路由器的动态 IP,Opera 仍然使用我的半静态 IP 进行浏览。

这可能吗?使用哪个软件?还有其他想法吗?

顺便说一句:路由器支持 PPTP、IPSec 和 L2TP

编辑:如果您对标题有更好的想法,请编辑或建议,我不知道如何称呼我的问题:(

答案1

没有实际的方法可以根据应用程序或进程来选择不同的路由。 (Linux 一度有一个:iptables --cmd-owner,但在内核 2.6.14 中消失了)。看Linux:基于应用程序限制传出

您可以使用 为每个用户选择不同的路由iptables --uid-owner,或者为不同的虚拟机选择不同的路由。因此,考虑到您的要求,您使用iptables,只要您以专用用户身份运行代理即可。

ip rule add fwmark 1 table 1
ip route add 0.0.0.0/0 table 1 dev tun0
iptables -t mangle -A OUTPUT -m owner --uid-owner proxy -j MARK --set-mark 1

双网络连接以获得解释。

答案2

据我了解,似乎是你需要的袜子 5服务器。

Socks 服务器可以通过一条命令轻松地通过 SSH 服务器完成:

ssh -D 8080 [email protected]

您可以使用袜子化对于 Linux 或袜帽让 Windows 将指定的代理设置应用于计算机上的任何应用程序。

答案3

如果您(仅)想对 HTTP 流量执行此操作,您可以使用私有氧基

因此,每个设备(在需要它的应用程序上)都会将 gentoo 盒子上的 privoxy 服务器设置为它们的代理。我相信你可以使用{+forward-overwrite {127.0.0.1:9876}}(参见男人)并使用 iptables 规则,将所有内容:9876通过 VPN 转发到不执行任何操作的新 privoxy 实例。

相关内容