花生壳内网穿透成功后仍无法访问
花生壳内网穿透成功后仍无法访问
花生壳显示“映射成功”,花生客户端在线,壳内端口也亮了绿灯——然后浏览器转了三圈,网穿问告诉你“无法访问此网站”。透成这种情况我遇到过不止一次,功后帮朋友排查也有七八回了。仍无问题几乎从不出在花生壳本身,法访而是花生它把流量送到你门口之后,门没开。壳内
先确认一个基本事实:花生壳的网穿问“成功”只代表它把你申请的域名和端口,跟你的透成内网IP加端口建立了映射关系。它不负责验证你内网那台机器上的功后服务是否真的在运行、是仍无否允许外部连接。换句话说,法访花生壳只是花生修了一条路,路上有没有车、车让不让上,它管不着。
先看服务本身有没有在监听
最常见的坑是服务只绑定了 127.0.0.1。比如你用 Python 起了一个 HTTP 服务,默认监听 localhost:8000,那它只接受本机发来的请求。花生壳从外部把流量转进来,源地址不是 127.0.0.1,服务直接拒绝。解决办法很简单:启动时绑定 0.0.0.0。Flask 要加 host='0.0.0.0',Node.js 要写 app.listen(3000, '0.0.0.0'),Nginx 要确认 listen 指令没写死 127.0.0.1。
怎么验证?在局域网另一台机器上访问 http://内网IP:端口。如果局域网都打不开,花生壳更不可能打通。这一步能过滤掉一半的问题。
防火墙和杀毒软件是惯犯
Windows 防火墙默认会拦截入站连接。你装完服务,系统弹出一个“是否允许此应用通过防火墙”的窗口,手快点了“取消”——恭喜,花生壳的流量全被挡在门外。去“高级安全 Windows Defender 防火墙”里看一眼入站规则,把对应端口的 TCP 规则加上。或者临时关掉防火墙测试一下,如果关掉就能访问,那问题就锁定了。
第三方安全软件更隐蔽。360、火绒有时候会静默拦截,连提示都不给。我遇到过一台机器,Windows 防火墙规则加对了,服务绑定也没问题,折腾了四十分钟,最后发现是火绒的“网络入侵拦截”把外部请求当成了扫描行为。关掉对应防护,立刻通了。
花生壳那边的映射类型选错了
花生壳的映射有 HTTP 和 TCP 两种。如果你跑的是网站,选了 TCP 映射,用域名访问大概率出问题——因为花生壳的 HTTP 映射会帮你处理 Host 头和反向代理,TCP 映射只是裸转发。反过来,如果是 SSH 或数据库,选了 HTTP 映射,那也连不上。检查一下映射类型和实际协议是否匹配。
还有一个细节:免费版花生壳的带宽和流量有限制,有时候映射显示正常,但流量跑完了,请求就被丢弃。登录花生壳管理后台看看流量使用情况,别忽略这个。
DNS 缓存和域名解析
刚创建映射不久,本地 DNS 可能还没刷新。试试 nslookup 你的域名,看解析出来的 IP 是不是花生壳的服务器地址。如果解析不对,换手机热点测试,或者等几分钟。花生壳的免费域名偶尔会有解析延迟,这不是你本地环境的问题。
排查顺序建议这样:局域网内先访问内网IP确认服务正常,然后检查服务绑定地址,再查防火墙,最后看花生壳映射配置。每一步都确认了,问题基本就跑不掉。别一上来就重装花生壳客户端,那是最没用的操作。
(责任编辑:探索)
