Iptables 端口转发自动化脚本

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 saveiptables-save > /etc/sysconfig/iptables
  • Ubuntu/Debian: 安装工具 apt install iptables-persistent,然后执行 netfilter-persistent save
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇