![将所有流量从虚拟接口路由到临时 tun0](https://linux22.com/image/681182/%E5%B0%86%E6%89%80%E6%9C%89%E6%B5%81%E9%87%8F%E4%BB%8E%E8%99%9A%E6%8B%9F%E6%8E%A5%E5%8F%A3%E8%B7%AF%E7%94%B1%E5%88%B0%E4%B8%B4%E6%97%B6%20tun0.png)
我正在尝试在家中设置一个自动 torrent 客户端,以下载我在工作中制作的一些大型 GIS 数据库并以 .torrent 文件的形式发布。
我的家庭服务器是带有一个以太网接口的 Raspberry PI,我选择的 torrent 客户端是 Transmission(我测试过的最轻量级的)。我通过 OpenVPN 客户端配置连接到我的工作网络。
由于 Transmission 不能绑定到接口,只能绑定到 IP,而且 OpenVPN 配置(我无法控制)在每次连接时都会向每个客户端发布一个动态 IP 地址,因此我创建了一个脚本,该脚本会在午夜启动 Raspberry 上的 VPN,读取分配的 IP,关闭 Transmission 并重新启动它以绑定到此地址。Transmission 在服务器上全天候运行,因此早上同一个脚本会停止 VPN,关闭 Transmission 并重新启动它以绑定到环回接口,因此不会产生 torrent 流量,但 Transmission 仍然可以收到新数据库发布的通知并将其添加到下载队列(这是通过守护进程完成的)。
这完美地运行(VPN 客户端设置了新的默认网关),但我想省去每天两次关闭和启动 Transmission 的麻烦。
我的想法是设置一个具有静态 IP 的虚拟接口 eth0.1 并将其绑定到 tun0,这样 eth0.1 上生成的所有流量都将通过 tun0,然后将 Transmission 绑定到 eth0.1 的静态 IP。这将允许 Transmission 全天候运行,但当 tun0 关闭时,torrent 流量将被丢弃。当 VPN 启动时,torrent 流量将通过 tun0。
这是我第一次接触 IPtables,所以我不知道它是否会起作用,也不知道该怎么做,所以我不是在寻求解决方案,而只是希望找到一些关于这个问题的好教程,因为我找到的那些都不是在现场的...
谢谢。