我在家里运行一个装有 rtorrent 和 apache2 的服务器。我想通过 OpenVPN 路由我的 rtorrent 流量,由于我对 OpenVPN 和 iptables 还不熟悉,所以我希望能有一个用户友好的指南。
我尝试过的:我已经在 Google 上搜索了两天,但没找到任何可以帮到我的东西。我已经用 openvpn 测试了隧道,它路由我的 IP 正确,但问题就在这里。因为我运行的是 apache2 服务器,所以当隧道处于活动状态时,它会停止工作(当然)。
我想要的是:我希望隧道处于活动状态但不是默认状态,并且只有 rtorrent 流量应该通过它,最后但并非最不重要的是,rtorrent 只能通过 VPN 连接。
有谁愿意承担教我这个任务吗?
答案1
我已设法通过两个主要步骤来解决这个问题:
- 选择使用TUN接口的服务提供商。
- 更多表路由
表路由
我读过最有用的指南http://lartc.org/howto/并按照那里提供的步骤进行操作。
我的设置现在是两个物理网卡(eth0 和 eth1),分为三个表(主表、T1 和 T2)。T1(eth1)路由默认内容(apache2、ssh 等),而 T2(eth0)仅用于 rtorrent 连接。
它非常有效。因此,如果您遇到同样的问题,请阅读 lartc.org 上的说明,问题将得到解决。
笔记
我还没有尝试使用 TAP 接口进行此配置,所以我无法判断它是否有效。
答案2
这是一个“高级路由”问题。
这些文章应该有帮助:
http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/
http://www.rjsystems.nl/en/2100-adv-routing.php
所以基本上您需要配置两个路由表,每个路由表都有自己的默认路由,以及指定哪些流量使用哪个路由表的规则。
在您的例子中,您指定默认情况下流量使用“正常”路由,而来自/到 vpn 接口的“vpn”流量使用“vpn”路由。然后在 rtorrent 启动时使用 -b 选项绑定到具有 vpn 接口的 ip 地址。
每次建立 VPN 后,您都需要进行路由表调整。
如果/当你让它工作时,请务必在这里留下你使用的确切命令!