前言:ngrok概念用途
ngrok是一个非常流行的反向代理服务,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道,支持80端口以及自定义tcp端口转发.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,可以进行内网穿透,这样你就可以在内网运行本地的程序,让别人通过公网访问了
原理:ngrok通过安全隧道将NAT和防火墙后面的本地服务器暴露给公共互联网.你可以在你的机器上下载并运行ngrok程序,并为其提供网络服务的端口,通常是网络服务器。它连接到ngrok云服务,该服务接受公网地址上的流量,并将流量转发到您计算机上运行的ngrok进程,然后转到你指定的本地地址
下面介绍如何下载安装并使用ngrok,以及结合实际网络环境利用ngrok实现Linux服务器SSH&Web服务的内网穿透
一、ngrok下载
官网上https://ngrok.com/download下载
支持Linux ,Mac,Windows等众多平台版本
二、注册ngrok账户
申请ngrok免费账户,建议用GitHub账户去注册ngrok账户,我这边直接用邮箱申请ngrok账户一直报Failed to solvecaptcha(无法解析验证码)的错误,万般无奈之下,用GitHub账户注册解决
注册申请成功之后,ngrok官网上登录账户,你会在Dashboard上看到免费提供给你的一串授权口令(后面会用到)如下截图所示
三、结合下面的网络环境,利用ngrok实现Linux服务器 SSH&Web服务的内网穿透
1) 从ngrok官网上下载Linux版本ngrok
2)SecureCRT登录Linux服务器 (IP地址:192.168.31.80)
rz上传到CentOS服务器,unzip解压并添加执行权限chmod 755 ngrok
3)授权口令authtoken从官网的Dashboard—Auth页面上Copy复制下来,然后运行./ngrokauthtoken XXXXXXXXX ,如下截图所示
4)授权口令首次执行,后面就不用再运行了,接下来就可以进入正题
输入./ngrok tcp 22
如上截图红圈,可以看到Forwarding 端口转发信息
tcp://0.tcp.ngrok.io:18188 -> localhost:22
也就是本地的22 端口可以通过公网0.tcp.ngrok.io:18188去访问
5)在外网PC上SecureCRT登录0.tcp.ngrok.io:18188验证一下
验证OK
ngrok也可以转发到其他计算机上的服务(非本地服务),只需指定一个网络地址和端口即可,如下拓扑图所示
下来介绍一下在内网Windows PC 192.168.31.5上实现转发其他服务器的http服务
1)Windows上运行ngrok步骤与Linux基本上没有啥差别,如下截图
2)输入ngrok tcp 192.168.31.1:1314
3)外网PC上Web浏览器登录
http://0.tcp.ngrok.io:17648/验证OK
总结:一条命令解决外网访问内网问题,无需任何配置,下载ngrok之后直接一条命令让外网访问您的内网不再是距离
另外:ngrok 是一个开源程序,官网服务在国外,国内访问国外速度慢.国内有相应类似ngrok的内网穿透服务,例如 natapp,frp等,有兴趣的可以自己研究一下
原文始发于微信公众号(WalkingCloud):利用ngrok实现Linux服务器 SSH&Web服务的内网穿透
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/243062.html