利用iptables禁止BT流量

确保安装了iptables。

在终端输入:

iptables -A FORWARD -m string --string "BitTorrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "BitTorrent protocol" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "peer_id=" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string ".torrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "announce.php?passkey=" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "torrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "announce" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "info_hash" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "get_peers" --algo bm -j DROP
iptables -A FORWARD -m string --string "announce_peer" --algo bm -j DROP
iptables -A FORWARD -m string --string "find_node" --algo bm -j DROP
iptables -A FORWARD -m string --algo bm --hex-string "|13426974546f7272656e742070726f746f636f6c|" -j DROP

原理:不封锁端口,而是阻止BT软件发出的特定请求,并结合BT软件的hex,定向kill request。

保存规则:

iptables-save > /root/iptables.rules

重新加载规则:

iptables-restore < /root/iptables.rules

设置自启动

vim /etc/network/if-pre-up.d/iptables

添加如下内容:

#!/bin/bash
/sbin/iptables-restore < /root/iptables.rules

保存后赋予执行权限:

chmod +x /etc/network/if-pre-up.d/iptables