您的当前位置:首页 > 探索 > 怎么内网穿透 正文

怎么内网穿透

时间:2026-10-17 04:33:31 来源:网络整理 编辑:探索

核心提示

家里那台树莓派跑着几个自建服务,出门在外想访问,发现运营商给的是内网IP。这事儿挺常见——宽带拨号拿到的地址是10.x.x.x或者100.64.x.x,压根不是公网。想从外网连进来,要么找运营商要公网

家里那台树莓派跑着几个自建服务,内网穿透出门在外想访问,内网穿透发现运营商给的内网穿透是内网IP。这事儿挺常见——宽带拨号拿到的内网穿透地址是10.x.x.x或者100.64.x.x,压根不是内网穿透公网。想从外网连进来,内网穿透要么找运营商要公网IP,内网穿透要么自己搞内网穿透。内网穿透

先说个最省事的内网穿透办法:frp。这玩意儿在GitHub上开源,内网穿透star数不少。内网穿透原理不复杂,内网穿透一台有公网IP的内网穿透服务器做中转,内网机器主动连上去,内网穿透把流量带出来。内网穿透我拿一台腾讯云轻量服务器当服务端,配置写起来也就几行:

[common] bind_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 

客户端这边填上服务端IP和端口,跑起来。外头连服务器IP的6000端口,流量就转到内网机器的22端口。整个过程内网机器主动往外连,防火墙不用动,NAT也拦不住。

但frp有个前提——你得有台公网服务器。没有怎么办?ZeroTier或者Tailscale这类组网工具能绕过去。它们本质上是建了个虚拟局域网,设备之间点对点打洞。打洞成功直接连,失败走中继。Tailscale用起来更顺手,装完登录账号,设备自动加入同一个网络,IP段是100.x.x.x。访问内网服务就像在同一个局域网里,ssh、http随便连。免费版支持100台设备,个人用绰绰有余。

打洞成功率跟网络环境关系很大。对称型NAT底下,打洞基本没戏,只能走中继。中继带宽有限,看视频会卡。我试过用ZeroTier远程桌面,画质调到最低还是延迟明显。传文件倒还行,几MB/s的速度能接受。

还有个更轻量的方案:Cloudflare Tunnel。不用公网IP,不用装客户端软件在访问端。内网机器跑个cloudflared,连到Cloudflare边缘节点,然后把域名解析过去。访问的时候走Cloudflare的CDN,HTTPS自动配好。配置写在命令行里:

cloudflared tunnel --url http://localhost:8080 

它会生成一个临时域名,直接能用。想固定域名就创建命名隧道,绑定自己的域名。免费版够用,就是走Cloudflare的线路,国内访问速度看运气。我测过几次,白天还行,晚上高峰期偶尔抽风。

选哪个方案看具体需求。要稳定、带宽大,frp加公网服务器最靠谱,成本是一台VPS的钱。纯个人用、设备不多,Tailscale省心。只想暴露个Web服务,Cloudflare Tunnel最方便,连端口都不用开。

有个坑得提一下:frp服务端暴露在公网,记得设token或者用stcp加密。我见过有人裸奔frp,结果内网SSH被爆破。Tailscale和ZeroTier有加密和ACL,相对安全些,但账号别用弱密码。

另外,有些路由器自带内网穿透功能,比如OpenWrt上的luci-app-frpc。图形界面配一下就行,不用手写配置文件。华硕路由器也有类似的DDNS加端口转发,但那个需要公网IP,不算真正的穿透。

说到底,内网穿透的核心就一句话:让外网能主动找到内网设备。要么借公网服务器中转,要么靠打洞建虚拟局域网,要么走第三方隧道。三条路各有各的代价,按自己的网络条件和折腾意愿挑一个就行。