没有云服务器?内网穿透了解一下

本文最后更新于:9 个月前

内网穿透又叫端口映射,用一句最简单的话来讲就是:将你的计算机所连接的私有网络映射到公网上,别人通过你给的域名或ip即可访问你本地的服务。具体的原理可参照百度百科
这么做可以实现各大厂商的云服务器(阿里云,腾讯云,百度云,华为云等)的效果,通过公网地址访问服务器

下面,我就Sunny-Ngrok来分享一下服务器搭建,其实都大同小异,照着官方文档来,慢慢的就会了

这里我简单描述一下内网穿透的两个应用,一是服务器搭建,二是远程桌面的搭建

首先是服务器搭建,在此之前,我们得先开启本地服务器,这里以node为例,环境搭建静态文件服务本地文件上线,以及用到的懒加载案例在之前文章有说到,这里直接进入正题

开启本地服务运行懒加载案例,通过127.0.0.1访问网页,我这里是运行在VSCode插件(live server)下,当然也可以参照静态文件服务把项目运行在node服务下,首先保证网页和接口可以在本地运行访问
我的前端部分端口号是5500,后端接口端口号是1024

但是Sunny-Ngrok免费版的对http协议只提供一个端口的隧道,此时我们就要用Nginx进行端口代理了,Nginx配置可以参考Nginx文章,我这里的配置如下

server {
    listen       10240;#监听端口
    server_name  localhost;
    location / {
        proxy_pass http://127.0.0.1:1024/;#反向代理后端接口
    }
    location /client {
        proxy_pass http://127.0.0.1:5500/;#反向代理前端页面
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
 
}

此时通过输入http://127.0.0.1:10240/client/就会代理到http://127.0.0.1:5500/下,输入http://127.0.0.1:10240/会被代理到http://127.0.0.1:1024/

下一步,注册Sunny-Ngrok账号,登录并购买免费服务器,配置服务器设置,最后下载穿透软件

下载完成后点击启动工具,在隧道管理中复制刚才新建的隧道id,粘贴到隧道软件中,并回车,进入到连接界面

此时刷新隧道管理界面,点击查看状态,可以看到,当前连接的ip,说明内网穿透成功


下一步,我们在新页面中打开赠送域名加路径,如:http://example.com/client/lazyLoad.html(example.com是赠送域名),打开后会提示输入账号密码。
输入http验证用户名和密码即可

但是此时懒加载请求的接口是本地的127.0.0.1,我们要修改为http://example.com/getList?len=1000,最后打开http://example.com/client/lazyLoad.html,显示以下效果

做到这里,服务器内网穿透的服务器搭建就完成了。

接下来,我们来尝试搭建一下远程桌面

和之前一样,购买新的免费服务器,并且配置tcp协议,这里有两点需要注意:

  1. 本地映射的ip不能使用127.0.0.1,而是使用局域网内的ip,通过ipconfig查看本机在局域网的ip并复制
  2. 远程桌面默认端口是3389

下面是我远程桌面的配置

隧道管理

最后和上面一样,运行内网穿透软件即可(可能会一直出现reconnecting提示,原因在Sunny-Ngrok官网文档中,我这的解决方法是在隧道管理中踢下线,然后多连几次)

我们可以使用另一台电脑或者手机版的远程桌面连接当前电脑(手机版可以去酷安),下面是用手机连接的效果

总结:内网穿透虽然比服务器要便宜,但是还要考虑自己电脑的电费和损耗,而且做服务器需要一直开着,所以,还是要对比,比较一下,选择适合自己的方案

希望这篇文章能帮助你