![排除 VPN 客户端的端口](https://linux22.com/image/1392074/%E6%8E%92%E9%99%A4%20VPN%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%E7%AB%AF%E5%8F%A3.png)
我使用 hidemyass,这是一种 vpn 服务。我使用它是为了保护隐私。VPN 的主要用途是供我浏览网页。
如何排除某些端口使用 VPN 连接?例如:我使用 ftp 上传文件,当我连接到 VPN 服务时,我不希望 ftp 客户端使用 VPN 连接,但我希望它使用我的主要互联网连接。根据我所做的研究,似乎我需要配置 ip 表,以便它将端口 21 从 VPN 连接中排除。我该如何配置它?使用 Ubuntu 作为我的操作系统。
答案1
这样做会非常困难 - 尤其是使用 FTP 之类的服务。如果您知道 FTP 的目标位置,那么只需将路由推送到相应的接口即可。
如果你真的需要用困难的方式来做这件事,那就需要设置基于策略的路由和 SNAT,这是一件很麻烦的事情——请参阅https://unix.stackexchange.com/questions/21093/output-traffic-on-different-interfaces-based-on-destination-port
因此,实际上您需要设置 2 个网络表 - 一个用于 VPN,一个用于真实网络。然后使用 iptables 标记数据包并将它们定向到适当的接口。
这里有两部分分步教程,与你正在查看的非常相似 http://utcc.utoronto.ca/~cks/space/blog/linux/DualIdentityRouting和 http://utcc.utoronto.ca/~cks/space/blog/linux/ForcingOutgoingInterface
不幸的是,您不能只使用 IPTABLES SNAT 规则,因为即使您可以调整来自 IP 地址,流量也会离开错误的接口。