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

Linux iptables 端口转发:让外部访问内网 SQL Server

📌 为什么需要端口转发?

业务场景

在企业内网中,数据库服务器通常位于核心网络区域,不直接对外暴露。而应用服务器或堡垒机位于接入层网络,可以同时访问外网和内网。

外网/本地 → 堡垒机(接入层)→ 数据库服务器(核心层)

具体场景

  • 数据库服务器(172.21.1.***)只能被内网特定机器访问

  • 堡垒机(172.21.1.***)可以访问数据库,也能被外部访问

  • 需要让外部开发人员通过堡垒机连接到内网数据库进行调试

为什么不用其他方案?

方案问题
直接开放数据库端口安全风险高,违反企业安全策略
VPN配置复杂,需要额外设备或软件
SSH隧道需要SSH权限,且不稳定
应用层代理需要额外软件,配置复杂
iptables转发✅ 系统自带,无需安装,性能好,稳定可靠

适用场景

  1. 开发调试:开发人员需要连接内网数据库

  2. 临时开放:运维人员需要临时开放数据库访问

  3. 端口映射:需要将一个端口映射到另一个地址

  4. 资源受限:内网环境无法安装额外软件


🛠 环境说明

角色IP地址说明
堡垒机(转发服务器)172.21.1.***可同时访问外网和内网
数据库服务器172.21.1.***内网SQL Server,不对外暴露
数据库端口1433SQL Server默认端口
本地客户端外网IP开发人员本地电脑

📋 操作步骤

第一步:开启IP转发

Linux默认未开启IP转发,需要手动开启:

# 临时开启(立即生效) echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward # 验证是否开启 cat /proc/sys/net/ipv4/ip_forward # 输出应为 1

⚠️ 这个配置重启后会失效,如需永久生效,编辑/etc/sysctl.conf添加:

text

net.ipv4.ip_forward = 1

然后执行sudo sysctl -p生效。


第二步:配置iptables转发规则

2.1 添加NAT转发规则

bash

# PREROUTING:处理从外部进入的请求 sudo iptables -t nat -I PREROUTING 1 -p tcp --dport 1433 -j DNAT --to-destination 数据库服务器IP:1433 # OUTPUT:处理本机访问本机的请求 sudo iptables -t nat -I OUTPUT 1 -p tcp --dport 1433 -j DNAT --to-destination 数据库服务器IP:1433 # POSTROUTING:让返回包能正确路由 sudo iptables -t nat -A POSTROUTING -p tcp -d 数据库服务器IP --dport 1433 -j MASQUERADE
2.2 开放防火墙端口

bash

# INPUT:允许外部访问本机1433端口 sudo iptables -I INPUT 1 -p tcp --dport 1433 -j ACCEPT # FORWARD:允许转发数据包到数据库 sudo iptables -I FORWARD 1 -p tcp -d 数据库服务器IP --dport 1433 -j ACCEPT sudo iptables -I FORWARD 1 -p tcp -s 数据库服务器IP --sport 1433 -j ACCEPT

第三步:验证配置

3.1 查看规则是否生效

bash

# 查看NAT表规则 sudo iptables -t nat -L -n -v --line-numbers # 查看INPUT链 sudo iptables -L INPUT -n -v # 查看FORWARD链 sudo iptables -L FORWARD -n -v
3.2 测试端口连通性

bash

# 在堡垒机上测试本机端口 nc -vz 127.0.0.1 1433 # 或 nc -vz 172.21.1.*** 1433 # 期望输出:Connected
3.3 从远程客户端测试

在本地电脑上:

bash

telnet 堡垒机IP 1433 # 或 nc -vz 堡垒机IP 1433

📝 快速恢复命令(重启后执行)

如果重启后规则丢失,执行以下命令快速恢复:

# 设置变量(替换为实际IP) DB_IP="172.21.1.***" # 开启IP转发 echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward # 添加转发规则 sudo iptables -t nat -I PREROUTING 1 -p tcp --dport 1433 -j DNAT --to-destination $DB_IP:1433 sudo iptables -t nat -I OUTPUT 1 -p tcp --dport 1433 -j DNAT --to-destination $DB_IP:1433 sudo iptables -t nat -A POSTROUTING -p tcp -d $DB_IP --dport 1433 -j MASQUERADE # 开放端口 sudo iptables -I INPUT 1 -p tcp --dport 1433 -j ACCEPT sudo iptables -I FORWARD 1 -p tcp -d $DB_IP --dport 1433 -j ACCEPT sudo iptables -I FORWARD 1 -p tcp -s $DB_IP --sport 1433 -j ACCEPT # 验证 nc -vz 127.0.0.1 1433
http://www.jsqmd.com/news/1109007/

相关文章:

  • 终极指南:3步使用免费工具找回遗忘的压缩包密码
  • PCF8591与PIC18LF25K40的嵌入式信号处理系统设计
  • RKLLM模型边缘部署与优化实践指南
  • GEO内容工程:构建AI时代的系统性证据能力
  • 终极原神抽卡记录导出指南:免费永久保存你的祈愿数据
  • LTE Cat 1bis物联网开发:LEXI-R10401D与STM32L031C6实战
  • 软考机考全流程压力测试实录(模拟断网/断电/进程崩溃):20年命题组技术顾问独家复盘,仅开放给考前最后一次模考人群
  • 3个实用方法:如何为Beyond Compare 5生成有效的授权密钥
  • 高效解密微信聊天记录:专业数据恢复完整指南
  • ICM-42688-P与PIC32MX664F064L在机器人控制与工业监测中的应用
  • 15A无刷电机FOC控制方案设计与实现
  • 多卡通信优化,RCCL 在 AMD 集群中的配置要点
  • 嵌入式条码识别系统开发与优化实战
  • GNSS与蜂窝通信融合的物联网设备开发实战
  • 家用高压豆浆机推荐哪种好用?优先看材质还是功能
  • 如何获客拉新?
  • Java工程师转型大模型开发:120天实战指南
  • 2026中国制造业精益白皮书哪家专业
  • 基于STM32F303ZE与EM3080-W的条形码解码系统设计
  • 多收发器无线扫码枪架构方案解析:XT6202-2 系列一对多数据传输技术与工程落地应用
  • 软加密实战:从代码混淆到授权校验的纵深防御体系设计
  • Si5351A时钟发生器与STM32的硬件设计与优化实践
  • 终极BetterNCM安装指南:3分钟完成网易云插件自动化部署
  • 国产版Codex?阿里QoderWork有点东西,设计出来的Codex+Claude Code学习网站好看啊(附教程,超简单)
  • LED矩阵控制:IS31FL3731与PIC18LF2458的创意开发指南
  • dify部署详细攻略
  • AMD 显卡跑大模型,vLLM 加 ROCm 7.x 部署实录
  • 嵌入式高精度计时系统设计与优化实践
  • Windows任务栏透明化终极指南:10分钟打造完美桌面体验
  • 车友必备车载神器合集!精简导航、免费音乐、全能车联、日程服务等