天天看点

Ngrok实现内网穿透原生NgrokSunny-Ngrok

目录

原生Ngrok

下载Ngrok

注册Ngrok获取authtoken

准备

使用

Sunny-Ngrok

下载

注册获取隧道id

使用

原生Ngrok

下载Ngrok

进入官网https://ngrok.com/download进行下载,Windows系统使用就下载Windows的

Ngrok实现内网穿透原生NgrokSunny-Ngrok

注册Ngrok获取authtoken

点击“Sign up"进行注册

Ngrok实现内网穿透原生NgrokSunny-Ngrok

输入信息进行注册

Ngrok实现内网穿透原生NgrokSunny-Ngrok

注册出现这个提示,那么很难注册成功,因为需要验证,而在国内是不会出现验证选项的,所以需要翻墙科学上网。

Ngrok实现内网穿透原生NgrokSunny-Ngrok

科学上网后,就可以注册了

Ngrok实现内网穿透原生NgrokSunny-Ngrok

注册成功后跳转的页面是这样的:

Ngrok实现内网穿透原生NgrokSunny-Ngrok

点击左侧菜单栏中的"Your Authtoken"中就可以看到我们需要的authtoken了。

Ngrok实现内网穿透原生NgrokSunny-Ngrok

准备

创建一个普通的JavaWeb项目。然后创建一个普通的HelloServlet即可。

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().print("Hello Ngrok!");
    }
}
           

使用了@WebServlet注解所以不需要配置web.xml文件,我们把这个项目使用tomcat运行起,在浏览器访问结果如下:

Ngrok实现内网穿透原生NgrokSunny-Ngrok

使用

将解压包进行解压,只有一个gnrok.exe文件

Ngrok实现内网穿透原生NgrokSunny-Ngrok

通过DOS窗口进入到该目录下

Ngrok实现内网穿透原生NgrokSunny-Ngrok

然后执行如下命令(注意:不同版本的Ngrok的命令是不一样的,但如果你执行的命令是错误的它会给出提示,你根据它提示的例子就可以明白正确的命令了):

# 保存密钥到文件中
ngrok authotoken 密钥
# 执行内网穿透
ngrok http -subdomain=二级域名 端口号
           
Ngrok实现内网穿透原生NgrokSunny-Ngrok

各参数注释:

  • 密钥就是注册后得到的authtoken
  • 二级域名一般是项目名
  • 端口号一般是8080

例如

Ngrok实现内网穿透原生NgrokSunny-Ngrok
Ngrok实现内网穿透原生NgrokSunny-Ngrok

出现如下界面表示成功了,但是这个界面会一闪而过。

Ngrok实现内网穿透原生NgrokSunny-Ngrok

因为它收费了,提示如下:

Ngrok实现内网穿透原生NgrokSunny-Ngrok

上面的意思是自定义子域名收费了,但是我们可以不自定义子域名啊。

我们只需要执行如下命令即可,不自定义子域名。

ngrok http 8080
           

执行后效果,表示已经运行成功了,可以通过公网访问

Ngrok实现内网穿透原生NgrokSunny-Ngrok

注意,这里 http://fa9af50fdb50.ngrok.io等价于http://localhost:8080,它们是可以相互替换的,但前者能够在公网访问你的项目,但是后者只能在自己的电脑上访问。

Ngrok实现内网穿透原生NgrokSunny-Ngrok

效果一样,这样你的项目的就可以在公网访问了,还可以在DOS窗口中查看到请求结果

Ngrok实现内网穿透原生NgrokSunny-Ngrok

Sunny-Ngrok

使用国内的Ngrok,网速更快,配置方面也更简单,而且免费。

下载

国内Ngrok官网地址:https://www.ngrok.cc/

Ngrok实现内网穿透原生NgrokSunny-Ngrok
Ngrok实现内网穿透原生NgrokSunny-Ngrok

解压后如下:

Ngrok实现内网穿透原生NgrokSunny-Ngrok

注册获取隧道id

Ngrok实现内网穿透原生NgrokSunny-Ngrok
Ngrok实现内网穿透原生NgrokSunny-Ngrok
Ngrok实现内网穿透原生NgrokSunny-Ngrok

还需要关注公众号才能使用

Ngrok实现内网穿透原生NgrokSunny-Ngrok

接着需要开通隧道,可以参考官方教程:https://www.ngrok.cc/_book/general/open.html

Ngrok实现内网穿透原生NgrokSunny-Ngrok

为了测试,买个不付费的

Ngrok实现内网穿透原生NgrokSunny-Ngrok
Ngrok实现内网穿透原生NgrokSunny-Ngrok

确定开通

Ngrok实现内网穿透原生NgrokSunny-Ngrok

开通后如下:

Ngrok实现内网穿透原生NgrokSunny-Ngrok

使用

在安装目录下双击执行"Sunny-Ngrok启动工具.bat"

Ngrok实现内网穿透原生NgrokSunny-Ngrok

然后输入隧道id

Ngrok实现内网穿透原生NgrokSunny-Ngrok

回车后就启动成功,可以使用了,复制网址直接查看效果

Ngrok实现内网穿透原生NgrokSunny-Ngrok

浏览器打开网址后,输入用户名和密码

Ngrok实现内网穿透原生NgrokSunny-Ngrok

发现访问不了,出现问题了,因为上面的域名地址映射的是"127.0.0.1:80",而我们本地tomcat项目通常使用的端口号是"8080"

Ngrok实现内网穿透原生NgrokSunny-Ngrok

所以我们要修改端口号

Ngrok实现内网穿透原生NgrokSunny-Ngrok
Ngrok实现内网穿透原生NgrokSunny-Ngrok

修改后重新执行本地的bat文件,发现映射的端口变成了8080。

Ngrok实现内网穿透原生NgrokSunny-Ngrok

注意,如果本地没有运行项目,那么会提示:

Ngrok实现内网穿透原生NgrokSunny-Ngrok

成功映射,实现内网穿透:

Ngrok实现内网穿透原生NgrokSunny-Ngrok

继续阅读