原本使用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:保存当前规则,避免误操作,还有备份可以恢复
脚本执行顺序:
- 启用IP转发(仅第一次)
- 转发规则管理(添加规则或者删除规则)、
- 保存规则
如果你要转发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