内网穿透原理与常用工具使用笔记 内网穿透原理与常用工具使用笔记前言做渗透测试、本地项目调试、内网开发、临时演示的时候我们经常会遇到一个问题电脑处于内网环境家庭 WiFi、公司局域网设备只有内网 IP公网无法直接访问。简单说内网机器可以主动访问外网但是外网无法主动访问内网机器。如果想让外网的人访问我本地跑的 Web 服务、数据库、后台管理页面直接用公网 IP 是行不通的这时候就需要用到内网穿透。内网穿透也是红队内网渗透中非常重要的技术不管是做临时端口转发、把内网服务暴露公网还是 C2 上线、反弹回连内网穿透工具都是必备。很多新手容易把内网穿透、端口映射、反向代理几个概念混淆本文从底层原理讲起再介绍多款主流工具的实操用法、优缺点、安全风险适合开发、运维、安全测试人员阅读。⚠️ 免责声明本文内容仅用于本地学习、授权环境测试。禁止在内网未授权的环境使用内网穿透禁止利用内网穿透进行非法访问、渗透、数据窃取等违法行为违规产生的所有法律责任由使用者自行承担。一、内网基础概念铺垫想要看懂内网穿透先要理清几个基础名词内网 IP私有 IP常见网段10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255路由器下手机、电脑、虚拟机分配的地址都是内网 IP这个 IP只能局域网内部互通互联网路由不转发私有 IP 数据包。NAT网络地址转换家庭路由器核心功能就是 NAT。内网设备访问外网时路由器会把内网 IP: 端口映射成路由器的公网 IP 临时端口。正向内网主机主动发包 → 路由器 NAT 转换 → 访问外网服务器。反向外网主机想主动连接内网机器数据包到达路由器路由器没有对应的映射记录直接丢弃数据包。这就是外网无法直接访问内网的根本原因。NAT 分为 4 种类型不同 NAT 类型直接决定穿透能不能成功全锥型 NATFull Cone只要内网主机访问过外网 IP外网任意地址都可以通过映射端口访问内网穿透成功率最高。受限锥型 NATRestricted Cone只允许你访问过的那个外网 IP 主动回连。端口受限锥型 NATPort Restricted ConeIP 端口双重限制红队场景最常见。对称 NATSymmetric NAT每次访问不同外网目标都会新建不同端口映射绝大多数 P2P 穿透在这里直接失效。家庭宽带、4G/5G 流量很多是对称 NATP2P 穿透大概率失败这时就需要中转服务器的方式实现内网穿透。二、内网穿透核心原理内网穿透总体分两大类P2P 点对点穿透、服务器中转穿透。2.1 服务器中转反向隧道最常用这是绝大多数工具采用的方案frp、ngrok、nps 都属于这类。前提你需要一台拥有独立公网 IP 的 VPS中转服务器。完整流程内网机器客户端主动向外网 VPS 上的服务端建立一条长连接隧道。这个连接是内网主动发起NAT 网关不会拦截。VPS 服务端监听指定端口接收来自外网用户的访问请求。当外网用户访问 VPS 的公网端口时服务端收到流量通过已经建立好的长隧道把流量转发给内网客户端。内网客户端收到流量转发给本地对应的内网服务服务响应数据沿着隧道原路返回给外网访问者。简单一句话内网机器主动拉一条隧道到公网服务器所有外网流量全部走这条隧道中转。缺点所有流量都经过 VPS 中转带宽受限于 VPS优点稳定性极强不受 NAT 类型限制渗透场景首选。2.2 P2P 点对点穿透代表工具nat123、pwnat。不需要 VPS 做流量中转两端尝试直接打洞建立连接。流程两端客户端分别向公网 STUN 服务器发送请求获取自己 NAT 映射后的公网端口。两端交换映射端口信息互相发送数据包 “打洞”。一旦打洞成功两端直接建立点对点通信流量不走第三方服务器。优点不消耗 VPS 带宽缺点对称 NAT 环境基本打不通成功率不稳定网络复杂的企业内网基本无法使用。重点区分端口映射DMZ、路由器端口转发≠内网穿透。端口映射需要路由器有公网 IP在路由器上配置内网穿透不需要路由器权限直接在内网主机运行客户端程序即可。三、常用内网穿透工具实操笔记3.1 frpFast Reverse Proxy最经典红队 / 开发首选frp 是开源轻量反向代理工具Go 语言编写跨平台Windows、Linux、macOS、ARM 都支持是安全人员使用最多的穿透工具。架构分为 frps服务端部署在公网 VPS、frpc客户端在内网机器运行。服务端 frps.iniVPS 配置[common] bind_port 7000 # frp客户端连接端口 token 12345678 # 通信密钥自定义客户端要和这里一致 dashboard_port 7500 # web管理面板端口 dashboard_user admin dashboard_pwd admin123VPS 上启动服务端Linux./frps -c frps.ini记得防火墙放行 7000、7500 端口。客户端 frpc.ini内网机器配置场景把本地内网 80 端口 Web 服务暴露到 VPS 的 8080 端口[common] server_addr 你的VPS公网IP server_port 7000 token 12345678 [web] type tcp local_ip 127.0.0.1 local_port 80 remote_port 8080内网机器启动客户端# Linux/macOS ./frpc -c frpc.ini # Windows cmd frpc.exe -c frpc.ini启动成功后访问VPSIP:8080流量就转发到本机 127.0.0.1:80 的 web 服务。frp 支持多种代理类型tcp通用 TCP 端口转发数据库、SSH、自定义端口http/https绑定域名80/443 端口适合 web 服务udpUDP 穿透DNS、游戏等stcp安全内网穿透支持密钥验证外网需要配置相同密钥才能访问隐藏端口红队常用frp 小技巧SSH 穿透把本地 22 端口映射在外网直接 ssh 连接内网服务器stcp 类型适合隐蔽访问不对外暴露公网端口可以配置多个代理同时映射多个端口可以配置带宽限制、压缩传输降低流量开销3.2 ngrok老牌内网穿透工具上手最简单不用自己买 VPS官方提供免费中转服务器适合临时快速演示项目开发调试首选。基础使用命令V3 版本# 将本地80端口web暴露公网自动生成https地址 ngrok http 80 # TCP端口映射本地3306数据库 ngrok tcp 3306运行之后会输出公网访问地址直接复制就可以在外网访问本地服务。✅ 优点开箱即用不用搭建服务端临时测试极其方便。❌ 缺点免费版带宽、连接数有限地址每次启动会变化不适合长期稳定使用官方服务器有流量监控安全渗透场景不推荐。3.3 npsNPSWeb 管理友好运维推荐nps 也是开源 Go 语言开发的内网穿透和 frp 类似最大亮点是功能强大的 Web 后台管理界面。同样分为 npc 客户端、nps 服务端。支持 TCP、UDP、HTTP、HTTPS、P2P 打洞网页上直接新建隧道、查看连接、查看流量、在线管理所有客户端支持域名绑定、黑白名单、流量限制适合场景运维批量管理多台内网机器图形化操作不用手动修改配置文件。缺点红队环境使用相对 frp 没有优势体积更大隐蔽性弱于 frp。3.4 cloudflare tunnel零公网服务器现代首选Cloudflare Tunnel原名 argo tunnel不需要 VPS不需要开放服务器端口流量走 Cloudflare 网络。原理内网客户端主动建立长连接到 Cloudflare 边缘节点外网访问走 CDN。# 快速把本地80端口web暴露 cloudflared tunnel --url http://127.0.0.1:80✅优点免费、不用服务器 IP、不用暴露主机端口、自带 HTTPS。❌缺点流量经过 Cloudflare有审计渗透测试不适合传输敏感数据部分协议支持有限。3.5 其他小众工具简单对比nat123P2P 打洞为主适合普通用户稳定性差socat轻量级端口转发工具适合临时简单隧道不适合长期连接chiselGo 编写基于 HTTP 隧道防火墙放行 80/443 场景非常好用红队经常用来绕过严格防火墙四、工具选型参考表工具类型是否自备 VPS特点适用场景frp反向隧道需要轻量、高性能、协议全、红队首选渗透、长期端口映射、sshngrok中转隧道不需要一键启动临时快速测试开发调试、临时演示nps反向隧道需要Web 可视化管理运维批量管理多内网主机cloudflare tunnelCDN 中转不需要自带 HTTPS无需开放端口Web 项目临时对外展示chiselHTTP 隧道需要走 http 协议绕过严格防火墙防火墙严格环境下内网穿透五、内网穿透常见坑 排查思路客户端启动成功但是外网无法访问优先排查 VPS 防火墙 / 安全组确认远程端口、frp 绑定端口放行。很多新手只看程序启动成功忘记阿里云 / 腾讯云安全组策略。本地服务监听 127.0.0.1无法被穿透访问本地服务必须监听0.0.0.0只监听 127.0.0.1 只能本机访问内网客户端也无法转发流量。隧道频繁断开网络不稳定、服务器带宽不足、长连接保活时间太短frp 中可以调整heartbeat_interval心跳参数。企业内网环境隧道直接连不上企业防火墙、代理、流量审计会拦截出站长连接可以改用基于 HTTP 的隧道chisel/cloudflared使用 80/443 端口尝试绕过。P2P 打洞总是失败大概率是对称 NAT放弃 P2P改用 VPS 中转方案。六、安全风险与注意事项重点内网穿透相当于把内网的服务暴露到公网一旦配置不当会带来严重安全风险暴露高危端口直接映射数据库、Redis、3389 远程桌面到公网如果没有强认证极易被扫描爆破入侵。身份认证薄弱frp、nps 如果 token 设置过于简单攻击者可以连接你的服务端接入内网隧道。流量明文传输TCP 默认流量明文传输中间人可以抓包重要业务开启 tls 加密。红队场景风险隧道流量会被流量设备检测容易触发 WAF、EDR 告警企业内网严禁未经授权搭建穿透隧道。不要直接开放管理后台内网管理系统不要直接无保护映射公网增加 IP 白名单、强密码、二次验证。安全加固建议frp 开启 tls 加密传输使用强随机 token不要默认密码远程端口不要使用 22、3389、3306 这类知名高危端口配置 IP 白名单限制来源访问 IP用完及时关闭隧道不要长期挂着七、拓展内网穿透在红队中的使用思路在内网渗透红队场景中内网穿透经常用于回连 C2、反弹 shell、将内网服务带出拿下内网一台边界机器后在这台机器部署 frpc建立隧道作为跳板。使用 stcp 私密隧道不开放公网端口只有携带密钥的客户端可以访问降低被扫描发现概率。利用 chisel 走 80/443 端口绕过严格出站防火墙很多企业只放行这两个端口。但是红队使用隧道需要注意长时间的长连接隧道很容易被 SOC、EDR、流量审计设备检测尽量短时间使用测试完成立刻清理进程、删除文件消除痕迹。结尾内网穿透本质就是利用内网客户端主动向外建立长连接突破 NAT 网关的单向访问限制。在开发调试、运维远程维护、授权渗透测试场景都非常实用。新手学习建议优先从 frp 入手frp 的生态、文档、社区资源最丰富吃透 frp 基本就能理解绝大多数反向隧道原理。不要只复制配置直接跑一定要理解 NAT 和隧道底层逻辑遇到断连、访问不通的问题才能独立排查。很多同学容易混淆内网穿透、端口转发、反向代理这里简单再总结区分端口转发同一台机器把本机 A 端口流量转到本机 B 端口内网穿透跨越 NAT外网访问内网机器反向代理通常用于 Web 负载均衡可配合内网穿透一起使用。另外工具只是手段安全意识更加重要。内网穿透一旦开启内网资源就暴露在互联网上如果没有做好权限控制很容易被黑客扫描攻击。生产环境不建议随意搭建穿透隧道优先使用 VPN、专线这类正规远程访问方案。学习完基础用法之后可以继续研究隧道加密、流量混淆、多层跳板串联、P2P 打洞原理。理解这些知识点不管是开发调试还是内网安全测试都会有很大提升。如果文章哪里有疑问或者想要看某款工具更详细的实战案例可以在评论区留言交流。了解网络安全首先要搞清楚下面这些前提网络安全到底包含哪些技术是否需要会编程网络安全行业有哪些职业方向“我”该如何选择网络安全的职业发展和成长路线是什么如果你是准备学习网络安全黑客或者正在学习下面这些你应该能用得上①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析一、网络安全黑客学习路线网络安全黑客学习路线形成网络安全领域所有的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。二、网络安全教程视频我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了。三、网络安全CTF实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这里带来的是CTFSRC资料HW资料毕竟实战是检验真理的唯一标准嘛~四、网络安全面试题最后我们所有的作为都是为就业服务的所以关键的临门一脚就是咱们的面试题内容所以面试题板块是咱们不可或缺的部分这里我给大家准备的就是我在面试期间准备的资料。网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】