文章摘要:大家好,我是小沈子,今天分享一个非常实用的小教程,不花钱,不用买服务器,不用自己部署各种服务,只需要一个小工具,直接让别人访问到你电脑上做好的网站,这种方法尤其适用于你要参加竞赛,需要给评委演示项目的场景。
没有域名、服务器,就不能上线网站了么?
发布时间:2023-09-17 作者:小沈子 分类: 编程 Ngrok 内网穿透
前言
没有服务器和公网IP,想让别人访问自己做好的网站,怎么办?
项目用的依赖服务太多了,想上线太麻烦了,怎么办?
协作开发时想让同事直接访问自己本地运行的项目,怎么办?
正文
大家好,我是小沈子,今天分享一个非常实用的小教程,不花钱,不用买服务器,不用自己部署各种服务,只需要一个小工具,直接让别人访问到你电脑上做好的网站,这种方法尤其适用于你要参加竞赛,需要给评委演示项目的场景。
那在阅读之前先请大家思考一个问题:
为什么别人无法直接访问你电脑上运行的网站和服务呢?
答案很简单,大多数情况下我们的个人电脑都处于局域网内,缺少可公开访问的公网IP地址,因此其他用户在网络上就找不到你,就没办法和你建立网络连接,那怎么解决这个问题呢?
一种可行的方法是内网穿透。通过一定的网络配置将内网的电脑暴露到公共网络,可以简单理解为有一个中间服务,由于他知道你电脑的地址,就可以帮助其他用户访问到你的计算机,那如何实现内网穿透呢?
很简单,使用ngrok一分钟就能搞定,那首先我们访问它的官网注册登录,注册登录成功后根据自己的操作系统选择下载软件的安装压缩包,然后将下载好的zip包解压,得到一个可执行文件:
接下来我们参考官方文档:
在本地执行ngrok命令,添加当前用户的身份验证令牌,进入到刚刚解压的可执行文件所在的目录执行即可:
现在呢,你的账号信息已经保存到本地的ngrok配置文件中了,接下来只需要执行ngrok http 80 命令就能启动内网穿透服务了,注意要将输入的端口号改为自己本地项目实际占用的端口号。那小沈子想在这里做个小调研,大家最常用的的口号是什么呢?欢迎在评论区分享。
现在我的电脑已经有一个前端网站了,占用的端口是85,回车即可自动为我们生成一个域名,相当于在他们的服务器上创建了一个隧道,连接了我们本地的服务端口,然后在浏览器访问该域名就能访问到本地启动的前端项目了。是不是很方便呢?
值得一提的是生成的域名还是https的安全域名!
虽然我们已经成功启动了内网穿透,成功的访问到了网站,但是现在每次启动得到的访问域名都是随机生成的,这不利于我们持续访问。
试想一下:你在电脑上做了个网站给你的女神表白,结果呢,刚发给女神网址,网址就变了,那岂不是很尴尬,所以我们需要一个静态的不变的域名,可以在官网找到静态域名配置,第一次进入配置页时,如果还没有添加域名,可以免费创建一个,创建好域名后可以直接复制服务启动命令。
然后在终端中执行该命令即可,其实就是在启动内网穿透时指定了domian参数,通过这种方式,我们每次的内网穿透域名就都是固定的了。
如果你是一名后端开发人员,要让前端人员访问你本地开发好的接口,通过这种方式就很简单了,不用反复打包,然后到线上或者测试服务器更新部署项目。
接下来让我们更进一步,以上讲的都是单服务的内网穿透,但如果你是一个全栈开发者,你的本地可能不仅有前端还后端服务那么如何利用ngrok 同时内网穿透多个服务呢?
这就需要我们修改ngrok 配置文件,手动配置隧道连接,首先根据官方文档的指引,找到自己电脑上的默认ngrok.yml配置文件:
然后在编辑器中修改这个文件:
比如我这里配置前端和后端两条隧道填写对应的本地服务端口,之后呢可以通过ngrok start命令写上隧道名称,指定启动我们哪个隧道或者执行ngrok start-all命令同时启动所有隧道就会发现生成了两个不同的子域名,分别指向前端和后端服务,但通过上面的方式,每次启动内网穿透得到的域名依然是随机的。我们可以通过ngrok.yml文件的domain配置来指定域名,然后执行命令启动我全部服务。
注意这里会报错:
由于ngrok 限定了每个域名只能绑定一个端口,不过也有解决方案可以在配置文件中指定subdomain给每一个端口分配一个子域名。但很遗憾这种方式是需要额外付费的,所以这里就不多说了,那如果我们想要用固定域名访问本地的多个端口怎么办呢?大家有什么更好的解决方案呢?欢迎大家留言分享自己的解决方法。
Ngrok的好处是:简单方便,如果你有一定的探索能力,也可以试试更灵活的开源软件:frp !
最后,大家千万千万不要忘记三件事:
1、用完内网穿透后,记得把服务关闭,否则别人能直接访问你的电脑服务,可能会有一定的安全风险。
2、你的token千万别泄露,比如录视频教程或截图的时候,不小心录进去了,那如果是这种情况,一定要及时重置三。
3、收藏转发,大家的每次转发收藏都会让小编的精神感到愉悦,给大家带来更好的知识分享,谢谢大家的阅读。
标签云
-
C#
seo
SQLserver
IIS
.NET
SSL
程序员
VS
编程语言
https
微信小程序
jQuery
服务器
个人博客
网站关键词排名
301
.net8
http
KOL
C#集合
.NET框架
命名空间
面向对象编程
异常处理
异步编程
设计模式
编程学习网站
百度分享js
关键词研究工具
网页加载速度
外部链接优化
异步加载
snv
腾讯元器
AI智能体
C#接口
装潢设计
响应式
自动备份
个人网站
WPF
数据库优化
winform
UI
编程
Ngrok
内网穿透
开源框架
NanUI
网站
清明节
html
生成img
nginx
签到
2023跨年
快捷方式
标签打印
icon图标
博客模板
Web前端框架
JavaScript
TortoiseSVN
VS2019
数据库自动同步工具
Serv-U
.NETCore
微信接口
数组去重
404页面
保存图片
QQ
幸福
鸡汤
小沈子
超实用工具箱
Layui
51劳动节
C#面试题
疫情
数据库
Queue队列
网页
挖呀挖