本文最后更新于 2020 年 6 月 2 日
本文以 Debian 10 为例,介绍如何禁止 BT 流量转发,这里以 iptables 和 UFW 两种方式为例,请根据情况任选其中一种。本文同样适用于 Ubuntu。
注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy
用户为例,进行防火墙规则的操作,并默认已按初始化配置文章对服务器进行了配置。
注意: 本文采用的方法,和网络上大部分网友们讨论的方法,均不能完全保证禁止有效,尤其是对于加密流量来说,欲了解原因请查看此处。
准备
安装 xtables-addons-common
:
1 | sudo apt update && sudo apt install xtables-addons-common -y |
查看是否安装成功:
1 | iptables -m ipp2p --help |
以下两种方式任选一种即可。
iptables
安装
1 | sudo apt update && sudo apt install iptables -y |
添加规则
如果仅需要禁止 BT 流量:
1 | sudo iptables -A FORWARD -m ipp2p --bit -j DROP |
如果需要禁止 ipp2p
支持的所有 P2P 流量:
1 | sudo iptables -A FORWARD -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul --winmx --ares -j DROP |
接下来设置 ip6tables
:
1 | sudo ip6tables -A FORWARD -m string --algo bm --string "BitTorrent protocol" -j DROP |
长效化规则
1 | sudo apt install iptables-persistent -y |
至此,已使用 iptables 完成对 BT 流量的封锁。
UFW
安装
1 | sudo apt update && sudo apt install ufw -y |
添加规则
1 | sudo vim /etc/ufw/after.rules |
如果仅需要禁止 BT 流量,在 # don't delete the 'COMMIT' line
的注释前添加:
1 | # use ipp2p to block some traffic |
如果需要禁止 ipp2p
支持的所有 P2P 流量,在 # don't delete the 'COMMIT' line
的注释前添加::
1 | # use ipp2p to block some traffic |
接下来设置 after6.rules
:
1 | sudo vim /etc/ufw/after6.rules |
在 # don't delete the 'COMMIT' line
的注释前添加:
1 | # ban bt |
启动规则
1 | sudo ufw reload |
查看是否生效:
1 | sudo iptables -L -n -v |
至此,已使用 UFW 完成对 BT 流量的封锁。
欲了解更多信息,请参见本文末尾的参考来源。
References
Filtering P2P network traffic with ipp2p
Using Linux iptables, How to block torrents or any P2P protocols?
How to block torrent traffic on ubuntu server?
Securing Public Shadowsocks Server
v2ray-core/common/protocol/bittorrent/bittorrent.go
ToutyRater / v2ray-guide Issue #76
How to Block BitTorrent on Linux
What is torrent encryption and does it make my traffic anonymous?
DMCA Notices: How Hollywood’s Lawyers Find You
How Can My ISP Tell I’m Using BitTorrent?
Comcast, DMCA, Torrents, Network Monitoring…how?
BitTorrent protocol primer, part 3: Detecting
BitTorrent protocol encryption
How to save rules of the iptables?
Do I need to restore iptable rules everytime on boot?
How can set these iptables rules to run at startup
Iptables reload/restart on Ubuntu 18.04
Debian ‘ignores’ /etc/network/if-pre-up.d/iptables
Can I limit connections per second for certain UserAgents using UFW?