尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

Linux iptables 端口转发:让外部访问内网 SQL Server
📅 发布时间:2026/7/2 13:04:29

📌 为什么需要端口转发?

业务场景

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

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

具体场景:

  • 数据库服务器(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

相关新闻

  • 家用高压豆浆机推荐哪种好用?优先看材质还是功能
  • 嵌入式条码识别系统开发与优化实战
  • GNSS与蜂窝通信融合的物联网设备开发实战

最新新闻

  • 一个平台背后的“硬功夫”:为什么星元素甄选能打破“低价无正品”的魔咒
  • 123云盘解析遇到403限制的技术挑战与netdisk-fast-download解决方案
  • STM32与Si4731数字收音机开发实战
  • PIC18F46K20驱动RGB灯带实现智能光效
  • 金融场景下的多维聚合与滚动计算实战指南
  • video-compare终极指南:战略级视频质量决策工具与效率提升解决方案

日新闻

  • Python Playwright录制功能:从零到一构建自动化测试脚本
  • 如何用开源工具永久保存你心爱的小说:novel-downloader全攻略
  • In-Context Learning不是教知识,而是模式对齐:从5个示例到100个工业级样本的真相

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号