当前位置: 首页 > news >正文

Linux iptables 实战:配置 NAT 端口转发访问内网 MySQL

📚 运维配置文档:Linux NAT 端口转发配置

文档编号:OPS-NET-2025-016
维护人:[Freed]
创建日期:2025年8月27日
适用系统:CentOS / RHEL / Ubuntu / Debian 等主流 Linux 发行版
目标功能:通过 iptables 配置 NAT 端口转发,实现公网端口 13306 映射到内网 MySQL 服务 192.168.0.80:3306,并限制访问来源 IP。


一、配置目标

项目
公网访问端口13306
内网目标地址192.168.0.80:3306
允许访问的源 IP办公网络IP1, 办公网络IP2
安全策略拒绝其他所有 IP 访问 13306

二、前置条件

  1. 当前服务器具备公网 IP,作为跳板机(NAT 网关)
  2. 内网服务器 192.168.0.80 已开启 MySQL 服务并监听 3306 端口
  3. 操作需使用 root 权限或 sudo
  4. 云平台(如阿里云、腾讯云)安全组已放行 TCP 13306 端口

三、配置步骤

1. 开启 IP 转发(IP Forwarding)

IP 转发是实现 NAT 的基础功能,必须开启。

临时生效(立即生效,重启后失效):
echo 1 > /proc/sys/net/ipv4/ip_forward
永久生效(写入系统配置):
sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
验证是否开启:
cat /proc/sys/net/ipv4/ip_forward

正常输出应为:1


2. 配置 iptables NAT 规则

(1) 添加 SNAT 规则(MASQUERADE)

确保内网服务器返回的数据包能正确回传到客户端。

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

说明MASQUERADE 会自动使用出站接口的公网 IP 做源地址转换,适合动态 IP 环境。

(2) 添加 DNAT 规则(端口转发)

将公网 13306 端口流量转发至内网 MySQL 服务。

sudo iptables -t nat -A PREROUTING -p tcp --dport 13306 -j DNAT --to-destination 192.168.0.80:3306

3. 配置访问控制规则(INPUT 链)

允许指定 IP 访问:
sudo iptables -A INPUT -p tcp -s 办公网络IP1 --dport 13306 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 办公网络IP2 --dport 13306 -j ACCEPT
拒绝其他所有 IP 访问:
sudo iptables -A INPUT -p tcp --dport 13306 -j DROP

⚠️ 注意:规则顺序重要!先允许,再拒绝。


4. 保存规则(防止重启丢失)

保存到自定义备份文件(推荐):
sudo iptables-save > /root/iptables_backup.txt
推荐:保存到系统标准路径(支持开机自动恢复)
# 创建目录(如不存在)
sudo mkdir -p /etc/iptables# 保存 IPv4 规则
sudo iptables-save > /etc/iptables/rules.v4

建议安装持久化服务

  • Ubuntu/Debian

    sudo apt install iptables-persistent netfilter-persistent
    
  • CentOS/RHEL

    sudo yum install iptables-services
    sudo systemctl enable iptables
    

四、验证配置

1. 查看 NAT 转发规则

sudo iptables -t nat -L PREROUTING -n -v --line-numbers

应包含:

tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:13306 to:192.168.0.80:3306

2. 查看 MASQUERADE 规则

sudo iptables -t nat -L POSTROUTING -n -v

应包含:

MASQUERADE  all  --  *      *       0.0.0.0/0            0.0.0.0/0

3. 查看访问控制规则

sudo iptables -L INPUT -n --line-numbers | grep 13306

应显示两条 ACCEPT 和一条 DROP 规则。


五、测试连接

从白名单 IP(如 办公网络IP1)执行:

telnet <公网IP> 13306

若连接成功,说明配置生效。


六、恢复与清理

如需清除所有相关规则:

# 清除 DNAT 规则
sudo iptables -t nat -D PREROUTING -p tcp --dport 13306 -j DNAT --to-destination 192.168.0.80:3306# 清除 MASQUERADE(谨慎操作)
sudo iptables -t nat -D POSTROUTING -j MASQUERADE# 清除 INPUT 规则
sudo iptables -D INPUT -p tcp -s 183.62.113.98 --dport 13306 -j ACCEPT
sudo iptables -D INPUT -p tcp -s 183.62.113.101 --dport 13306 -j ACCEPT
sudo iptables -D INPUT -p tcp --dport 13306 -j DROP# 重新保存
sudo iptables-save > /etc/iptables/rules.v4

七、注意事项

项目说明
安全性仅允许指定 IP 访问,防止端口暴露
云平台务必在安全组中放行 13306 端口
持久化使用 iptables-persistent 或类似工具确保重启后规则生效
服务依赖确保 192.168.0.80:3306 服务正常运行
测试建议从白名单 IP 测试连接,避免被 DROP 规则拦截

文档状态:已审核
📌 维护人:[Freed]
🔄 最后更新:2025年9月11日


文章转载自:

http://kSim3Obd.zwmjq.cn
http://YR9d60bl.zwmjq.cn
http://FlEPAK8b.zwmjq.cn
http://YUXeMwku.zwmjq.cn
http://Dw4yFV2N.zwmjq.cn
http://fOBlPJHT.zwmjq.cn
http://GswUNDwD.zwmjq.cn
http://cIB3A6W3.zwmjq.cn
http://MoLxyJ7b.zwmjq.cn
http://EIlsbbXJ.zwmjq.cn
http://wVcEGbbT.zwmjq.cn
http://BErzMoYv.zwmjq.cn
http://2gTmAfln.zwmjq.cn
http://8ekMTQZH.zwmjq.cn
http://Z8JP6SLg.zwmjq.cn
http://oU68u7Im.zwmjq.cn
http://cqbBKHJp.zwmjq.cn
http://41Zpk1Gc.zwmjq.cn
http://a8bbGtvh.zwmjq.cn
http://MQZ0G7kl.zwmjq.cn
http://PyyJEhSL.zwmjq.cn
http://ChhWb8yc.zwmjq.cn
http://NNaYEWho.zwmjq.cn
http://tPla2qAR.zwmjq.cn
http://StF7911q.zwmjq.cn
http://ZsXRhI2h.zwmjq.cn
http://ky6tKcK2.zwmjq.cn
http://Xoy8xWZJ.zwmjq.cn
http://3mnZnP66.zwmjq.cn
http://F6U6eA8N.zwmjq.cn
http://www.dtcms.com/a/378246.html

相关文章:

  • docker,自定义镜像dockerfile
  • 分布式专题——9 Redis7底层数据结构解析
  • WPF 数据绑定模式详解(TwoWay、OneWay、OneTime、OneWayToSource、Default)
  • 前端埋点系统架构设计与优化实践
  • SEO新手入门:什么是SEO及其作用
  • Nginx性能优化与防盗链实战指南
  • C++类(上)默认构造和运算符重载
  • 字符串大数相加:从初稿到优化的思路演进
  • 追根索源-神经网络的灾难性遗忘原因
  • 零碎的嵌入式笔记2
  • 室内配线工程量计算-批量测量更方便
  • 深入理解 Gateway 网关:原理、源码解析与最佳实践
  • 3.List,set 与 Zset(Redis数据类型)
  • 前沿探索:RISC-V 架构 MCU 在航天级辐射环境下的可靠性测试
  • 苹果上架App软件全流程指南:iOS 应用发布步骤、App Store 上架流程、uni-app 打包上传与审核技巧详解
  • NW622NW623美光固态闪存NW624NW635
  • 38.自编码器:AI的压缩与重建艺术
  • leetcode-python-2418按身高排序
  • 【学习日记】
  • 【Android View】事件分发机制
  • 深入了解linux系统—— 线程池
  • 视频理解新纪元!VideoChat双模架构突破视频对话瓶颈,开启多模态交互智能时代
  • 【115】基于51单片机GSM防火防盗报警系统【Proteus仿真+Keil程序+报告+原理图】
  • 传统模型RNN与CNN介绍
  • 分布式专题——10.1 ShardingSphere介绍
  • 视频版权保护有哪些好用的加密方案
  • Rust 开发环境安装与 crates.io 国内源配置(Windows / macOS / Linux 全流程)
  • 前端全链路质量监控体系建设与实践分享
  • 使用python脚本储存mosquito服务器数据到sqlite
  • win10使用ssh访问vmware虚拟机