利用iptables+ipset限制端口,只允许国内访问。
Debian下,先安装
apt-get install ipset
创建ipset的 chnroute IP集
ipset create chnroute hash:net maxelem 65536
自动下载更新ipset国内IP路由脚本
1 2 3 4 5 6 7 8
| #!/bin/bash ipset create chnroute hash:net maxelem 65536 wget --no-check-certificate -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest'| awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }'>/etc/chnroute.txt ipset flush chnroute while read ip;do ipset add chnroute $ip done</etc/chnroute.txt ipset save chnroute >/etc/chnroute.conf
|
保存脚本为chnroute.sh 到/etc目录下,并且赋予执行权限
chmod +x /etc/chnroute.sh
添加crontab计划任务,每天执行一次更新。
crontab -e
添加
0 0 * * * /etc/chnroute.sh
显示chnroute列表
ipset list chnroute
iptables限制,只允许ipset的 chnroute IP集内IP连接到7000端口
1 2 3 4
| iptables -A INPUT -m set--match -set chnroute src -p tcp --dport 7000 -j ACCEPT iptables -A INPUT -m set--match -set chnroute src -p udp --dport 7000 -j ACCEPT iptables -A INPUT -p tcp --dport 7000 -j DROP iptables -A INPUT -p udp --dport 7000 -j DROP
|
7000端口为frps参数的bind_port = 7000,主要限制国外IP连接到此frps通讯端口,即可。
转载:利用iptables+ipset限制,只允许国内IP连接到frps服务