frp 内网穿透
快速反向代理

利用iptables+ipset限制,只允许国内IP连接到frps服务

Linux教程
Debian下,先安装
apt-get install ipset

创建ipset的 chnroute IP集
ipset create chnroute hash:net maxelem 65536

自动下载更新ipset国内IP路由脚本

#!/usr/bin/env bash
/sbin/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
/sbin/ipset flush chnroute
while read ip; do
    /sbin/ipset add chnroute $ip
done < /etc/chnroute.txt
/sbin/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端口

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主要通讯端口,即可。

赞(0) 打赏
原创不易,未经授权,严禁转载:frp 内网穿透 » 利用iptables+ipset限制,只允许国内IP连接到frps服务

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    按照此防火墙规则设置貌似无法wget,wget会超时,关掉防火墙后正常wget

    呵呵哒1个月前 (04-16)回复
    • 这个只针对了7000端口的关闭,并且再允许ipset里的路由表开放进入,你多学习下iptables吧

      荣耀1个月前 (04-19)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏