如何让你的本地上的项目不用部署到服务器也能让外网看到?使用ngrok内网穿透实现

前言

hello啊,(~ ̄▽ ̄)~

本次的主题是如上题所示。

操作完后,阔以让你本机上项目不用部署到服务器上也能让别人看到(嘛~ 其实就是一种偷懒的方法啦~)

如果觉得没那个必要的话,也阔以直接溜了(毕竟直接部署到服务器上面不就好咯φ(゜▽゜*)♪)

当然,像这种场景还是很多地方是需要的勒( •̀ ω •́ )✧,so! 直接进入主题吧!
在这里插入图片描述


一、准备工作

1、一台云服务器 :我的是腾讯云服务器(只有配置啥的。。别管我配置是啥,你们肯定是越高越好撒!!)
2、一个解析后的域名:这个也是在腾讯云上面买的(来来来,瞧一瞧,看一看,像这个 .com .cn 啥的超有牌面的好伐!)
3、一台电脑:能启就行 (要求不过分,就一台能吃鸡的电脑,这样才算标配好伐 (●ˇ∀ˇ●))
4、一个项目:能用就行 (至少登录没问题吧,界面也不能太丑吧,功能也不能太差吧…)
5、远程控制软件:我用的是finalshell (能操作就行啦~)


二、安装ngrok运行环境 (liunx)

命令行1:

# 安装 gcc 和gcc-c++  

yum -y install gcc
 
yum -y install gcc-c++
 
# 安装 golang , 下载地址在https://studygolang.com/dl中找的,想换版本可以在这里找
 
wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz
 
tar -zxvf go1.8.linux-amd64.tar.gz

成功图形1:
在这里插入图片描述
命令行2:


vi /etc/profile   #文件中加上环境变量
 
source /etc/profile   #使环境生效
 
go version   #查看go是否安装成功

要加的环境变量2:

export GOROOT=你的go解压地址
 
export PATH=$PATH:$GOROOT/bin

成功图形2:

在这里插入图片描述
在这里插入图片描述

三、安装ngrok (liunx)

命令行:


#安装git 用于下载ngrok代码

 yum -y install git
 
#克隆代码,文件夹命名为 ngrok-server,也可以填写,默认就是ngrok
 
git clone https://github.com/inconshreveable/ngrok.git ngrok-server

成功图形:
在这里插入图片描述

四、配置ngrok (liunx)

重点:
1、生成一个自己的客户端的ssl证书
2、自己的云服务器要打开安全组

(1)生成一个自己的客户端ssl证书

注意! 证书生成过程需要一个NGROK_BASE_DOMAIN。 填写我们的域名地址
命令行1:

cd ngrok-server    #进入安装根目录

NGROK_DOMAIN="javawwl.com"
 
openssl genrsa -out rootCA.key 2048
 
openssl req -new -x509 -nodes -key rootCA.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out rootCA.pem
 
openssl genrsa -out server.key 2048
 
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
 
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -days 10000 -out server.crt

成功图形1:

在这里插入图片描述

命令行2:

#下面复制证书到默认读取目录下
\cp -rf rootCA.pem assets/client/tls/ngrokroot.crt
 
\cp -rf server.crt assets/server/tls/snakeoil.crt
 
\cp -rf server.key assets/server/tls/snakeoil.key

成功图形2:

在这里插入图片描述

(2)设置安全组

这个就不过多讲了,涉及到端口了,因为每个人的端口设置度可以不一样的哈。

在这里插入图片描述

五、生成客户端和服务端并运行ngrok (liunx)

命令行1:


#linux服务端
 
GOOS=linux GOARCH=386 make release-server
 
#win客户端
 
GOOS=windows GOARCH=386 make release-client

成功图形1:
在这里插入图片描述
命令行2:

# 进入服务端
cd linux_386
 
#后台运行服务端
nohup ./ngrokd -domain="javawwl.com"  -httpAddr=":8000" -httpsAddr=":8001" -tunnelAddr=":8002" &

成功图形2:

在这里插入图片描述
在这里插入图片描述

六、下载window客户端并配置运行 (window)

这个下载就行了,[]( ̄▽ ̄)*
在这里插入图片描述
然后增加两个文件在同目录下
在这里插入图片描述
ngrok.cfg 文件:

server_addr: javawwl.com:8002
trust_host_root_certs: false
 
tunnels:
 ssh-example:
  remote_port: 8093
  proto:
   tcp: 22
 sssh-example:
  emote_port: 3389
  proto:
   tcp: 3389
 ftp-example:
  remote_port: 21
  proto:
   tcp: 21
 http1-example:
  subdomain: blog1
  proto:
   http: 8013
   https: 8014
 http2-example:
  subdomain: blog2
  proto:
   http: 8080

start.bat 文件:

#启动所有隧道
 
ngrok -config=ngrok.cfg start-all
 
pause
 
#启动指定隧道
 
ngrok -config=ngrok.cfg start ssh-example sssh-example

接下来就点击start.bat就行了?我的确实是欧克了,但是如果你项目的端口号啥的不一样就完了
所以的放一波图解:
在这里插入图片描述
在这里插入图片描述
想改动那个ngrok.cfg文件的话

可以康康文档参考:ngrok中文文档

但是还有最最重要的一步,创建子域名(针对不会为自己域名创建子域名的人而写的)

比如我上面的那个blog1和blog2,这些都是我创建的子域名,如果你们没有创建的话,那:blog1.xxx.com肯定是访问不了的

在这里插入图片描述

七、访问 (window)

当然,在你关闭服务端,或者你关闭本地的客户端之后,都是没办法联通的,所以缺一不可。

想要用的时候打开就行。

在这里插入图片描述

就比如我的项目在我本地项目用的就是8013端口,那么我在外面用http://blog1.javawwl.com:8000就可以访问到了
在这里插入图片描述

后言

ngrok中文文档:ngrok中文文档

参考博客:linux服务器搭建ngrok服务-实现内网穿透

上面大佬写的不错,就是有些我之前没搞明白的东西,所以就自己先尝试了一下,再补全了。(大佬里面还有自启服务,我懒,不想写了,大家随意吧)

欧了,散了,散了,大家(~ ̄▽ ̄)~洗洗睡吧。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章