# 使用ngrok实现内网穿透以便外网访问

# 1 内网穿透

当我们在本地开发Web应用时,只能在本地访问或在同一个局域网(内网)访问,这带来了极大的限制。比如手机难以访问、其它人员无法访问测试、难以提供接口给外界调用等。通过内网穿透技术,我们能把服务暴露在外网上。

世面上成功的内网穿透软件比较多,如Ngrok (opens new window)花生壳 (opens new window)Natapp (opens new window)等,本文采用Ngrok,因为它足够简单易用,非常方便,有免费功能,更有高级的付费功能。

# 2 使用Ngrok

# 2.1 下载Ngrok

可以到 https://ngrok.com/download 下载,选择对应的版本。而且,它友好地在下载界面提供了简单使用教程,如下图所示:

ngrok-download

下载后需要解压。

# 2.2 启动Web应用和Ngrok

本地启动了Web应用,端口为8000,接着一个命令启动Ngrok如下:

ngrok http 8000

启动Ngrok后:

without-auth

可以看见,它是有时间限制的,每次只能使用8小时。

现在,我们就可以通过它提供的链接 http://03cb1b6b.ngrok.io 在外网访问了。同时,Ngrok还提供了UI给用户观察请求详情:http://localhost:4040/inspect/http ,可以看历史请求、请求重发、request和response详情:

UI

# 2.3 地区修改

通过增加参数-region=ap可以指定地区,默认为us。可支持的区域如下:

Code Default Region
us Yes United States
eu Europe
ap Asia/Pacific
au Australia
sa South America
jp Japan
in India

# 2.4 注册无限长

如果没有注册,每次启动时长只有8小时,注册获得AuthToken并配置后:

./ngrok authtoken 1ajuqjllY20DWlAqxxx_xxx

就没有时长限制了,这对于简单(贫穷)的开发人员来说,已经足够了。

with-auth

不得不说,付费版本还是挺贵的,但提供的功能确实也比较多,主要就是在域名、IP、支持优先级、连接容量等方面:

plan

# 3 总结

Ngrok还真是挺方便的,而且永久免费,对于普通开发调试来说,已经足够了,算是很良心了。付费功能虽然强大,但是基于太穷,付费是不可能的了,这辈子不可能付费了。

更多功能请访问官方帮助文档:https://ngrok.com/docs

上次更新: 2023/8/18 23:39:36