Github上能找到很多ip段的txt文件,下面用Python脚本将它转换成IPSET
-
- 首先下载好需要转换的ip文件
sample-ips.txt
-
1.0.1.0/24 1.0.2.0/23 1.0.8.0/21 1.0.32.0/19 192.168.1.0/24
-
- 保存以下代码为
create-ipset.py
create-ipset.py
-
#open里面的文件名根据实际情况修改 with open('sample-ips.txt') as f: lines = f.readlines() commands = ['ipset create myipset hash:net'] for l in lines: commands.append("ipset add myipset %s"%l.strip()) with open('create-ipset.sh', 'w') as my_list_file: for element in commands: my_list_file.write('%s\n' % element)
- 保存以下代码为
- 运行python脚本获取shell脚本
python3 create-ipset.py
命令成功执行后,应该能见到一个新生成的
create-ipset.sh
文件 - 将生成的shell脚本
create-ipset.sh
上传到Linux系统主机执行bash create-ipset.sh
视乎主机性能和ip列表长度,这一步需要等待一定时间
- 测试IPSET是否正常工作
root@OpenWrt:~# ipset test myipset 192.168.100.1 192.168.100.1 is NOT in set myipset.
到这一步IPSET就已经创建成功了,如果想将IPSET中的IP进行重定向,可以继续看下去
- 重定向IPSET流量
iptables -A PREROUTING -t mangle -i eth0 -m set --match-set myipset dst -j MARK --set-mark 123 ip route add table 123 default via 192.168.1.254 dev eth0 ip rule add fwmark 123 table 123
上面命令的作用是将目的地址为myipset的流量重定向到
192.168.1.254
网关,命令里面的网络接口eth0
以及网关、ipset名称等要按实际情况修改
留下评论