首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一文读懂 NAT打洞及实践

一文读懂 NAT打洞及实践

作者头像
逍遥子大表哥
发布2025-07-28 19:38:26
发布2025-07-28 19:38:26
32500
代码可运行
举报
文章被收录于专栏:kali blogkali blog
运行总次数:0
代码可运行

本文为大家分享如何利用NAT打洞实现免费的公网IP。快来试试吧!

什么是NAT

你的IPv4地址是多少呢?如我们可以利用在线网站查找当前设备的公网IP。

可我们在路由器中查看时,你就会看到当前IP为100开头的IP地址。

这是怎么回事呢?运营商在 IPv4 中使用 NAT(网络地址转换) 技术,让许多设备共享一个公网 IP。当然,IP 的使用者不仅仅包括你家的设备,可能小区中的很多设备和你家的设备共享一个 IP。

什么是NAT打洞

NAT 打洞(NAT Traversal)是一种技术,它允许位于私有网络中的设备与外部世界建立直接的通信连接1。打洞的过程是指A向B的外网地址发送消息,一旦A与B都向对方的外网地址发送了数据包,就打开了A与B之间的“洞”,一旦应用程序确认已经可以通过往对方的外网地址发送数据包的方式让数据包到达NAT后面的目的应用程序,程序会自动停止继续发送用于“打洞”的数据包,转而开始真正的P2P数据传输。

开启NAT

在默认情况下,nat是关闭的。因此需要我们手动开启。现根据我们常见的家庭网络类型,简单说说开启步骤。

类型1

光猫桥接,路由器拨号

即,光猫只做光电转换。路由器拨号上网。因此,我们需要在路由器中进行相关配置就行了。

注:不同品牌的路由器,开启方式大同小异。

找到 高级设置 - DMZ(部分路由器叫做DMZ主机),打开DMZ 开关,并将地址指定为你的设备 IP 地址

类型2

光猫拨号,路由器 DHCP

这也是目前主流的网络连接方式。具体配置方式如下:使用超管密码,进入光猫后台。找到 安全 - 防火墙 - 安全级,改为

进入应用 - DMZ 主机 ,指定为路由器的 IP 地址(或 MAC 地址)

接着进入 应用 - UPnP,将其变为使能(启用

接下来,进入路由器后台 找到 高级设置 - DMZ 主机打开 DMZ 开关,并将地址指定为你的设备 IP 地址

打洞测试

我们可以使用Natter 进行打洞测试。首先下载项目到本地。

代码语言:javascript
代码运行次数:0
运行
复制
git clone https://github.com/MikeWang000000/Natter.git
#测试
python natter.py -m test

示例

将本地的22端口暴露在公网

代码语言:javascript
代码运行次数:0
运行
复制
python natter.py -p 22

连接

SSH登录

总结

利用NAT打洞,我们可以方便地将内网IP暴露在公网。但是唯一的不足是,因为IP地址是共享,所有IP地址在重启光猫或路由器后,可能会发生变化。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 kali笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是NAT
  • 什么是NAT打洞
  • 开启NAT
  • 打洞测试
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档