Anybody

  • AI相关
  • 网络
  • 工具
  1. 首页
  2. Linux
  3. 正文

Iptables 端口转发自动化脚本

2026年1月15日 461点热度 0人点赞 0条评论

IPTables 端口转发自动化脚本

你可以将以下代码保存为 forward.sh,方便后续管理。

#!/bin/bash
# 转发服务器的本地端口
LOCAL_PORT=999
# 目标服务器的 IP
REMOTE_IP="8.8.8.8"
# 目标服务器的端口
REMOTE_PORT=22
echo "正在配置端口转发: 本机:$LOCAL_PORT -> $REMOTE_IP:$REMOTE_PORT"
#1. 开启系统内核转发
sysctl -w net.ipv4.ip_forward=1 > /dev/null
#2. 清理可能存在的旧规则(根据端口和目标IP精确删除)
iptables -t nat -D PREROUTING -p tcp --dport $LOCAL_PORT -j DNAT --to-destination $REMOTE_IP:$REMOTE_PORT 2>/dev/null
iptables -D FORWARD -p tcp -d $REMOTE_IP --dport $REMOTE_PORT -j ACCEPT 2>/dev/null
iptables -t nat -D POSTROUTING -p tcp -d $REMOTE_IP --dport $REMOTE_PORT -j MASQUERADE 2>/dev/null
#3. 插入新规则到第一行 (解决 Docker 冲突关键)
#NAT 入站转换
iptables -t nat -I PREROUTING 1 -p tcp --dport $LOCAL_PORT -j DNAT --to-destination $REMOTE_IP:$REMOTE_PORT
#转发链放行
iptables -I FORWARD 1 -p tcp -d $REMOTE_IP --dport $REMOTE_PORT -j ACCEPT
#允许已建立连接的包回流 (常用全局规则)
iptables -I FORWARD 1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
#本机入站放行 (防止某些环境下INPUT拦截)
iptables -I INPUT 1 -p tcp --dport $LOCAL_PORT -j ACCEPT
#出站伪装 (确保回包路径)
iptables -t nat -I POSTROUTING 1 -p tcp -d $REMOTE_IP --dport $REMOTE_PORT -j MASQUERADE
echo "转发设置完成!"
echo "请确保云服务器安全组已放行端口: $LOCAL_PORT"

脚本说明

  • 优先级 (PREROUTING 1):Docker 会在 nat 表里插入很多规则。使用 -I 1(Insert at position 1)可以确保转发规则在 Docker 逻辑运行之前拦截并处理流量。
  • 转发链 (FORWARD):配置了 DNAT,流量就不再进入 INPUT 链(那是给本机进程用的,比如 nc),而是进入 FORWARD 链。系统默认 FORWARD DROP,所以必须在第一行显式允许流量流向目标 IP。
  • 回包伪装 (MASQUERADE):这是为了“欺骗”目标机。让目标机以为是转发服务器在访问它,这样它就会把包回给转发服务器,再由转发服务器转交给客户端。

使用方法

  • 保存脚本:vi forward.sh
  • 赋予权限:chmod +x forward.sh
  • 执行脚本:./forward.sh

如何持久化(重启不丢失)?

  • iptables 命令执行后是即时生效的,但重启服务器会重置。
  • CentOS/RHEL: service iptables save 或 iptables-save > /etc/sysconfig/iptables
  • Ubuntu/Debian: 安装工具 apt install iptables-persistent,然后执行 netfilter-persistent save
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: iptables
最后更新:2026年1月15日

管理员

Github

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2026 Anybody. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang