我想确保传输仅在其运行的服务器连接到 VPN 时发送/接收流量。
我发现这个问题很相似,但我不想强制所有流量通过 VPN,而且我无法找到关于如何从命令行使用 firestarter 的良好指南。
相反,我正在考虑使用 ufw,但我对防火墙几乎没有经验,我希望社区可以帮助我。
我的一个想法是强制传输使用特定端口,比如 33442,然后只允许从 VPN 服务器的 IP 地址进出该端口的流量。我查看了 Ubuntu 服务器指南,我认为可以这样做:
sudo ufw enable
sudo ufw deny port tcp from localhost to any port 33442
sudo ufa allow port tcp from localhost to VPNIP port 33442
sudo ufw deny port udp from localhost to any port 33442
sudo ufa allow port udp from localhost to VPNIP port 33442
这个逻辑站得住脚吗?你会怎么做?我将使用什么作为 VPNIP、VPN 服务器的公共 IP,或者我应该指定 VPN 连接到我的本地子网范围?
谢谢你的帮助!
创建
vpnroute
组:添加一条
iptables
规则,拒绝vpnroute
不通过tun0
接口的组成员进行的任何传出网络连接:以组成员身份开始传输过程
vpnroute
:这是 NOOBS(使用 debian)的完整“如何”确保 debian-transmission 用户组(即传输)仅通过 vpn 路由数据
不要基于复杂的系统脚本对 vpn 使用更冗长的“操作方法”......! iptables 是最好的(也是万无一失的)方法!!!- 使用基于传输用户和组的一些 IPTABLE 规则来控制 vpn(不像许多使用 systemd 脚本、上下脚本等的更复杂的“黑客”方法......)而且它非常简单!
第 1 步 - 设置:(假设传输已安装,因此存在 debian-transmission 用户!)
第 2 步 - 创建传输 IP 规则文件
并在下面的代码块中添加文本从
#!/bin/bash
重要的
保存文件然后运行
然后确保这些规则在重新启动之间持续存在:
并在两个提示中点击是。完毕!
该脚本的优点在于它将通过设备跟踪所有数据!当你发出
它将显示有多少数据流向哪个接口以及哪一侧 INPUT 或 OUTPUT,因此您可以确保 vpn 脚本正常工作。例如;
此脚本已在从 vpn 连接、断开连接、重新启动时进行了详尽的测试。它工作得很好。传输只能使用VPN。与其他脚本相比,此脚本的最大优势在于我已确保如您所见(通过
iptables -L -v
) 您的数据与传输中的内容相符(通过为每个接口 eth0、vpn (tun0) 添加 INPUT(全部)和转发(全部)规则)。所以你确切地知道发生了什么!!!数据总数与传输不完全一致 - 不幸的是,我无法在 INPUT 端区分到 debian-transmission 用户,并且可能会有额外的开销和使用相同 VPN 的其他进程,但您会看到数据大致相符在输入端,大约是输出端的一半,用于确认 vpn 的工作。另一件需要注意的事情 - vpn 断开连接需要一段时间(所有流量都停止传输)并重新连接传输以在新的 vpn 上“开始”,所以不要担心是否需要大约 5 分钟才能再次开始洪流.. .提示 -如果您想逐行了解此脚本的工作原理,请使用谷歌“MAN iptables”并查看这篇关于带宽监控的文章...
这适用于无头传输,我根据运行传输服务的用户限制流量,
10.0.0.0/8
是您的内部网络,您应该更改它以匹配您的网络,tun0
是您的 OpenVPN 接口,eth0
是您的 LAN 连接。sudo
如果您不是 root,请添加到命令:iptables -F
(我们使用 -F 开关刷新所有现有规则,因此我们从一个干净的状态开始,从中添加新规则。)iptables -L
(列出当前设置)重启后使 iptables 持久化
理想情况下,您应该使用具有绑定到特定接口(VPN 接口)功能的 torrent 客户端。
在洪流客户端中,Deluge 就是这样做的。因此,您可以安装 Deluge 并在“首选项”中配置界面,一切就绪!