Hugo博客公告弹窗

iptables一键转发脚本

原本使用realm做转发,但是没成功,不知道是不是因为我的中转机安装了宝塔,还安装了一些docker项目,还扶墙,反正乱七八糟的东西,干脆就使用iptables,为了方便,跟claude耗了两个小时搞了个小脚本~

脚本

在中转机上安装脚本

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/iptables-manager.sh && chmod +x iptables-manager.sh && ./iptables-manager.sh

使用注意

最好先执行菜单3:保存当前规则,避免误操作,还有备份可以恢复

脚本执行顺序:

  1. 启用IP转发(仅第一次)
  2. 转发规则管理(添加规则或者删除规则)、
  3. 保存规则

如果你要转发443或者80端口,使用域名访问(http/s),记得把DNS的A记录指向中转机ip,甚至还可以开启cloudflare cdn 双重保护,让黑子找不到你的ip。

删除服务

如果不需要转发服务了,除了在脚本中删除转发规则,还可以删除服务,彻底清除

systemctl disable iptables-forward.service && rm -f /etc/systemd/system/iptables-forward.service && systemctl daemon-reload

其他功能

因为我的中转机还承担着科学上网的任务,所以有必要开启本机访问支持,

添加本机访问支持,例如目标IP 8.8.8.8:443 (转发443端口)

iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 8.8.8.8:443
iptables -t nat -A POSTROUTING -p tcp -d 443 --dport 443 -o lo -j MASQUERADE

允许已建立的连接(提高效率)

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

删除规则

查看IPv4的NAT规则

iptables-save -t nat

查看IPv6的NAT规则

ip6tables-save -t nat

删除脚本

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/iptables_del.sh && chmod +x iptables_del.sh && ./iptables_del.sh
CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-11-20 16:13
clarity统计