Linux如何配置NAT实现端口映射

发布时间 - 2025-09-10 00:00:00    点击率:
首先启用IP转发,再通过iptables配置DNAT实现端口映射,将外部请求重定向到内网主机,如将公网2222端口映射至192.168.1.100的22端口;若需回包正确返回,还需配置MASQUERADE或SNAT规则;最后保存规则确保重启生效,并确认防火墙允许相应端口通信。

在Linux中配置NAT实现端口映射,主要依赖

iptables
或更现代的
nftables
工具。以下以
iptables
为例,说明如何通过配置NAT规则将外部访问某个端口转发到内网主机的指定端口。

开启IP转发功能

Linux默认不开启IP包转发,必须先启用才能实现NAT转发功能。

编辑网络配置文件:

修改

/etc/sysctl.conf
,确保包含以下行:

net.ipv4.ip_forward = 1

保存后执行以下命令立即生效:

sysctl -p

配置DNAT实现端口映射

使用

iptables
nat
表中的
PREROUTING
链,将进入的外部请求重定向到内网某台主机。

示例:将公网IP的2222端口映射到内网192.168.1.100的22端口(SSH):
iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.100:22

这条规则表示:所有目标端口为2222的TCP请求,将目标地址改为192.168.1.100:22。

配置SNAT或MASQUERADE(可选)

如果内网主机的默认网关不是当前NAT服务器,需要配置SNAT或MASQUERADE,使回包能正确返回。

若出口网卡是动态IP(如PPPoE),使用MASQUERADE:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
若出口IP固定,可使用SNAT:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 公网IP

保存规则并设置开机生效

iptables规则默认重启后丢失,需手动保存。

在Debian/Ubuntu系统:
iptables-save > /etc/iptables/rules.v4
在CentOS/RHEL系统:
service iptables save

或使用:

iptables-save > /etc/sysconfig/iptables

基本上就这些。配置完成后,外部用户访问服务器公网IP的2222端口,就会被透明转发到内网192.168.1.100的SSH服务上。确保防火墙(如ufw、firewalld)未阻止对应端口,且内网主机网络可达。


# linux  # centos  # 防火墙  # ubuntu  # 工具  # ssh  # debian  # 内网  # 端口映射  # 重启  # 重定向  # 就会  # 这条  # 可达  # 可选  # 为例  # 还需 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: LinuxCD持续部署教程_自动发布与回滚机制  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  轻松掌握MySQL函数中的last_insert_id()  php 三元运算符实例详细介绍  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Windows Hello人脸识别突然无法使用  5种Android数据存储方式汇总  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  如何在云主机快速搭建网站站点?  高性价比服务器租赁——企业级配置与24小时运维服务  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  高防服务器:AI智能防御DDoS攻击与数据安全保障  英语简历制作免费网站推荐,如何将简历翻译成英文?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何快速搭建FTP站点实现文件共享?  如何在万网自助建站中设置域名及备案?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  原生JS实现图片轮播切换效果  网站制作企业,网站的banner和导航栏是指什么?  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  韩国服务器如何优化跨境访问实现高效连接?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  nginx修改上传文件大小限制的方法  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  简历在线制作网站免费版,如何创建个人简历?  EditPlus中的正则表达式 实战(4)  中山网站制作网页,中山新生登记系统登记流程?  如何快速上传自定义模板至建站之星?  免费网站制作appp,免费制作app哪个平台好?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  实例解析Array和String方法  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel如何自定义分页视图?(Pagination示例)  Python图片处理进阶教程_Pillow滤镜与图像增强  浅谈javascript alert和confirm的美化