ngrok服务器搭建和4种客户端使用方法_Sail__的博客-CSDN博客_ngrok服务器搭建 window


本站和网页 https://blog.csdn.net/diaobatian/article/details/100890037 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

ngrok服务器搭建和4种客户端使用方法_Sail__的博客-CSDN博客_ngrok服务器搭建 window
ngrok服务器搭建和4种客户端使用方法
置顶
Sail__
于 2019-09-16 15:55:15 发布
3055
收藏
分类专栏:
ngrok
文章标签:
ngrok
ngrok客户端
tls: bad certificate
内网穿透
微信ngrok
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/diaobatian/article/details/100890037
版权
ngrok
专栏收录该内容
1 篇文章
0 订阅
订阅专栏
ngrok的作用和原理可以网上自行搜索查阅。
环境如下:
服务器 aliyun centos7.2
域名 ithinkcry.cn
客户端 windows 和 树莓派
安装步骤如下:
目录
Go
Git 
OpenSSL
编译ngrok
服务端:
客户端:
windows64位的客户端
linux客户端
arm_linux客户端
mac客户端
nginx
启动
服务端
客户端
windows客户端  
linux客户端 
错误
Go
安装go环境 yum install go 查看go安装情况
[root@jiba ~]# go version
go version go1.11.5 linux/amd64
官方要求go的版本必须是1.1+
Git 
下载ngrok源码到服务器上(确保服务器上已经安装git)
[root@jiba zzj]# cd ngrokcode/
[root@jiba ngrokcode]# git clone https://github.com/inconshreveable/ngrok.git
Cloning into 'ngrok'...
remote: Enumerating objects: 2732, done.
remote: Total 2732 (delta 0), reused 0 (delta 0), pack-reused 2732
Receiving objects: 100% (2732/2732), 665.38 KiB | 124.00 KiB/s, done.
Resolving deltas: 100% (1298/1298), done.
OpenSSL
使用openssl 生成ngrok的证书 我的域名是ithinck.cn,我是用的ngrok地址是ngrok.ithinkcry.cn,所以此处domain的地址是ngrok.ithinkcry.cn
[root@jiba ngrok]# pwd
/home/zzj/ngrokcode/ngrok
[root@jiba ngrok]# openssl
OpenSSL> genrsa -out base.key 2048
Generating RSA private key, 2048 bit long modulus
................................................................+++
...........................................+++
e is 65537 (0x10001)
OpenSSL> req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=ngrok.ithinkcry.cn" -out base.pem
OpenSSL> genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
...........................................................................................+++
........................+++
e is 65537 (0x10001)
OpenSSL> req -new -key server.key -subj "/CN=ngrok.ithinkcry.cn" -out server.csr
OpenSSL> x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
Signature ok
subject=/CN=ngrok.ithinkcry.cn
Getting CA Private Key
OpenSSL> exit
查看生成的证书文件  base.key base.pem base.srl server.crt server.csr server.key
[root@jiba ngrok]# pwd
/home/zzj/ngrokcode/ngrok
[root@jiba ngrok]# ll
total 56
drwxr-xr-x 4 root root 4096 Sep 16 10:46 assets
-rw-r--r-- 1 root root 1679 Sep 16 10:58 base.key
-rw-r--r-- 1 root root 1119 Sep 16 11:03 base.pem
-rw-r--r-- 1 root root   17 Sep 16 11:04 base.srl
drwxr-xr-x 2 root root 4096 Sep 16 10:46 contrib
-rw-r--r-- 1 root root  199 Sep 16 10:46 CONTRIBUTORS
drwxr-xr-x 2 root root 4096 Sep 16 10:46 docs
-rw-r--r-- 1 root root  551 Sep 16 10:46 LICENSE
-rw-r--r-- 1 root root 1433 Sep 16 10:46 Makefile
-rw-r--r-- 1 root root 2725 Sep 16 10:46 README.md
-rw-r--r-- 1 root root 1001 Sep 16 11:04 server.crt
-rw-r--r-- 1 root root  903 Sep 16 11:04 server.csr
-rw-r--r-- 1 root root 1679 Sep 16 11:03 server.key
drwxr-xr-x 3 root root 4096 Sep 16 10:46 src
复制生成的证书到assets文件夹下 ngrok通过bindata将ngrok源码目录下的assets目录(资源文件)打包到可执行文件(ngrokd和ngrok)中 去,assets/client/tls和assets/server/tls下分别存放着用于ngrok和ngrokd的默认证书文件,我们需要将它们替换成我们自己生成的:(因此这一步务必放在编译可执行文件之前)
[root@jiba ngrok]# pwd
/home/zzj/ngrokcode/ngrok
[root@jiba ngrok]# cp base.pem assets/client/tls/ngrokroot.crt
cp: overwrite ‘assets/client/tls/ngrokroot.crt’?  y
[root@jiba ngrok]# cp server.crt assets/server/tls/snakeoil.crt
cp: overwrite ‘assets/server/tls/snakeoil.crt’? y
[root@jiba ngrok]# cp server.key assets/server/tls/snakeoil.key
cp: overwrite ‘assets/server/tls/snakeoil.key’? y
编译ngrok
服务端:
在ngrok目录下执行如下命令,编译ngrokd:
[root@jiba ngrok]# pwd
/home/zzj/ngrokcode/ngrok
[root@jiba ngrok]# make release-server
GOOS="" GOARCH="" go get github.com/jteeuwen/go-bindata/go-bindata
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
        -debug=false \
        -o=src/ngrok/client/assets/assets_release.go \
        assets/client/...
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
        -debug=false \
        -o=src/ngrok/server/assets/assets_release.go \
        assets/server/...
go get -tags 'release' -d -v ngrok/...
github.com/inconshreveable/mousetrap (download)
github.com/rcrowley/go-metrics (download)
Fetching https://gopkg.in/inconshreveable/go-update.v0?go-get=1
Parsing meta tags from https://gopkg.in/inconshreveable/go-update.v0?go-get=1 (status code 200)
get "gopkg.in/inconshreveable/go-update.v0": found meta tag get.metaImport{Prefix:"gopkg.in/inconshreveable/go-update.v0", VCS:"git", RepoRoot:"https://gopkg.in/inconshreveable/go-update.v0"} at https://gopkg.in/inconshreveable/go-update.v0?go-get=1
gopkg.in/inconshreveable/go-update.v0 (download)
github.com/kardianos/osext (download)
github.com/kr/binarydist (download)
Fetching https://gopkg.in/inconshreveable/go-update.v0/check?go-get=1
Parsing meta tags from https://gopkg.in/inconshreveable/go-update.v0/check?go-get=1 (status code 200)
get "gopkg.in/inconshreveable/go-update.v0/check": found meta tag get.metaImport{Prefix:"gopkg.in/inconshreveable/go-update.v0", VCS:"git", RepoRoot:"https://gopkg.in/inconshreveable/go-update.v0"} at https://gopkg.in/inconshreveable/go-update.v0/check?go-get=1
get "gopkg.in/inconshreveable/go-update.v0/check": verifying non-authoritative meta tag
Fetching https://gopkg.in/inconshreveable/go-update.v0?go-get=1
Parsing meta tags from https://gopkg.in/inconshreveable/go-update.v0?go-get=1 (status code 200)
Fetching https://gopkg.in/yaml.v1?go-get=1
Parsing meta tags from https://gopkg.in/yaml.v1?go-get=1 (status code 200)
get "gopkg.in/yaml.v1": found meta tag get.metaImport{Prefix:"gopkg.in/yaml.v1", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v1"} at https://gopkg.in/yaml.v1?go-get=1
gopkg.in/yaml.v1 (download)
github.com/inconshreveable/go-vhost (download)
github.com/alecthomas/log4go (download)
github.com/nsf/termbox-go (download)
github.com/mattn/go-runewidth (download)
github.com/gorilla/websocket (download)
go install -tags 'release' ngrok/main/ngrokd
编译完毕后可以看到生成了bin文件夹,里面有服务端的执行文件
[root@jiba ngrok]# pwd
/home/zzj/ngrokcode/ngrok
[root@jiba ngrok]# ll
total 60
drwxr-xr-x 4 root root 4096 Sep 16 10:46 assets
-rw-r--r-- 1 root root 1679 Sep 16 10:58 base.key
-rw-r--r-- 1 root root 1119 Sep 16 11:03 base.pem
-rw-r--r-- 1 root root   17 Sep 16 11:04 base.srl
drwxr-xr-x 2 root root 4096 Sep 16 11:29 bin
drwxr-xr-x 2 root root 4096 Sep 16 10:46 contrib
-rw-r--r-- 1 root root  199 Sep 16 10:46 CONTRIBUTORS
drwxr-xr-x 2 root root 4096 Sep 16 10:46 docs
-rw-r--r-- 1 root root  551 Sep 16 10:46 LICENSE
-rw-r--r-- 1 root root 1433 Sep 16 10:46 Makefile
-rw-r--r-- 1 root root 2725 Sep 16 10:46 README.md
-rw-r--r-- 1 root root 1001 Sep 16 11:04 server.crt
-rw-r--r-- 1 root root  903 Sep 16 11:04 server.csr
-rw-r--r-- 1 root root 1679 Sep 16 11:03 server.key
drwxr-xr-x 5 root root 4096 Sep 16 11:28 src
[root@jiba ngrok]# cd bin/
[root@jiba bin]# ll
total 11800
-rwxr-xr-x 1 root root 2772750 Sep 16 11:28 go-bindata
-rwxr-xr-x 1 root root 9308318 Sep 16 11:29 ngrokd
[root@jiba bin]#
客户端:
4个选项 GOOS=linux GOARCH=amd64 make release-client #Linux  64位环境 GOOS=windows GOARCH=amd64 make release-client #windows 64位环境 GOOS=linux GOARCH=arm make release-client #Linux arm环境
GOOS=darwin GOARCH=amd64 make release-client #Mac 环境
windows64位的客户端
[root@jiba ngrok]# pwd
/home/zzj/ngrokcode/ngrok
[root@jiba ngrok]# GOOS=windows GOARCH=amd64 make release-client
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
        -debug=false \
        -o=src/ngrok/client/assets/assets_release.go \
        assets/client/...
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
        -debug=false \
        -o=src/ngrok/server/assets/assets_release.go \
        assets/server/...
go get -tags 'release' -d -v ngrok/...
go install -tags 'release' ngrok/main/ngrok
[root@jiba ngrok]#
可以看到在bin文件下多了一个windows_amd64文件夹,里面有windows客户端的启动文件
[root@jiba ngrok]# ll
total 60
drwxr-xr-x 4 root root 4096 Sep 16 10:46 assets
-rw-r--r-- 1 root root 1679 Sep 16 10:58 base.key
-rw-r--r-- 1 root root 1119 Sep 16 11:03 base.pem
-rw-r--r-- 1 root root   17 Sep 16 11:04 base.srl
drwxr-xr-x 3 root root 4096 Sep 16 11:34 bin
drwxr-xr-x 2 root root 4096 Sep 16 10:46 contrib
-rw-r--r-- 1 root root  199 Sep 16 10:46 CONTRIBUTORS
drwxr-xr-x 2 root root 4096 Sep 16 10:46 docs
-rw-r--r-- 1 root root  551 Sep 16 10:46 LICENSE
-rw-r--r-- 1 root root 1433 Sep 16 10:46 Makefile
-rw-r--r-- 1 root root 2725 Sep 16 10:46 README.md
-rw-r--r-- 1 root root 1001 Sep 16 11:04 server.crt
-rw-r--r-- 1 root root  903 Sep 16 11:04 server.csr
-rw-r--r-- 1 root root 1679 Sep 16 11:03 server.key
drwxr-xr-x 5 root root 4096 Sep 16 11:28 src
[root@jiba ngrok]# cd bin/
[root@jiba bin]# ll
total 11804
-rwxr-xr-x 1 root root 2772750 Sep 16 11:28 go-bindata
-rwxr-xr-x 1 root root 9308318 Sep 16 11:29 ngrokd
drwxr-xr-x 2 root root    4096 Sep 16 11:34 windows_amd64
[root@jiba bin]# cd windows_amd64/
[root@jiba windows_amd64]# ll
total 11248
-rwxr-xr-x 1 root root 11515904 Sep 16 11:34 ngrok.exe
[root@jiba windows_amd64]#
linux客户端
[root@jiba ngrok]# GOOS=linux GOARCH=amd64 make release-client #Linux
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
-debug=false \
-o=src/ngrok/client/assets/assets_release.go \
assets/client/...
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
-debug=false \
-o=src/ngrok/server/assets/assets_release.go \
assets/server/...
go get -tags 'release' -d -v ngrok/...
go install -tags 'release' ngrok/main/ngrok
可以看到bin目录下多出的一个文件[ngrok]就是
[root@jiba bin]# ll
total 47948
-rwxr-xr-x 1 root root 2772750 Sep 16 11:28 go-bindata
drwxr-xr-x 2 root root 4096 Sep 30 13:34 linux_arm //这文件夹里面是arm环境下的linux的客户端文件(树莓派之类的arm服务器)
-rwxr-xr-x 1 root root 11837754 Sep 30 13:33 ngrok //这个是linux的客户端文件
-rwxr-xr-x 1 root root 9308318 Sep 16 14:46 ngrokd
-rw-r--r-- 1 root root 25151717 Sep 30 13:48 ngrok.log
-rwxr-xr-x 1 root root 301 Sep 16 14:39 start.sh
drwxr-xr-x 2 root root 4096 Sep 16 14:47 windows_amd64
arm_linux客户端
[root@jiba ngrok]# GOOS=linux GOARCH=arm make release-client #Linux
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
-debug=false \
-o=src/ngrok/client/assets/assets_release.go \
assets/client/...
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
-debug=false \
-o=src/ngrok/server/assets/assets_release.go \
assets/server/...
go get -tags 'release' -d -v ngrok/...
go install -tags 'release' ngrok/main/ngrok
进入bin目录下,
[root@jiba bin]# ll
total 47948
-rwxr-xr-x 1 root root 2772750 Sep 16 11:28 go-bindata
drwxr-xr-x 2 root root 4096 Sep 30 13:34 linux_arm //这文件夹里面是arm环境下的linux的客户端文件(树莓派之类的arm服务器)
-rwxr-xr-x 1 root root 11837754 Sep 30 13:33 ngrok //这个是linux的客户端文件
-rwxr-xr-x 1 root root 9308318 Sep 16 14:46 ngrokd
-rw-r--r-- 1 root root 25151717 Sep 30 13:48 ngrok.log
-rwxr-xr-x 1 root root 301 Sep 16 14:39 start.sh
drwxr-xr-x 2 root root 4096 Sep 16 14:47 windows_amd64
注意
需要注意的是,在编译生成的linux客户端 和 arm_linux 客户端 在复制到别的linux服务器上以后,不可以直接执行。 需要添加执行权限:
chmowd a+x ngrok
然后可以使用 ./ngrok xxxxxxxxx 启动
mac客户端
命令是 GOOS=darwin GOARCH=amd64 make release-client
在ngrok目录下执行:
[root@jiba ngrok]# ll
total 60
drwxr-xr-x 4 root root 4096 Sep 16 10:46 assets
-rw-r--r-- 1 root root 1675 Sep 16 14:42 base.key
-rw-r--r-- 1 root root 1119 Sep 16 14:43 base.pem
-rw-r--r-- 1 root root 17 Sep 16 14:44 base.srl
drwxr-xr-x 4 root root 4096 Oct 11 23:19 bin
drwxr-xr-x 2 root root 4096 Sep 16 10:46 contrib
-rw-r--r-- 1 root root 199 Sep 16 10:46 CONTRIBUTORS
drwxr-xr-x 2 root root 4096 Sep 16 10:46 docs
-rw-r--r-- 1 root root 551 Sep 16 10:46 LICENSE
-rw-r--r-- 1 root root 1433 Sep 16 10:46 Makefile
-rw-r--r-- 1 root root 2725 Sep 16 10:46 README.md
-rw-r--r-- 1 root root 1001 Sep 16 14:44 server.crt
-rw-r--r-- 1 root root 903 Sep 16 14:44 server.csr
-rw-r--r-- 1 root root 1679 Sep 16 14:43 server.key
drwxr-xr-x 5 root root 4096 Sep 16 11:28 src
#开始执行
[root@jiba ngrok]# GOOS=darwin GOARCH=amd64 make release-client
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
-debug=false \
-o=src/ngrok/client/assets/assets_release.go \
assets/client/...
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
-debug=false \
-o=src/ngrok/server/assets/assets_release.go \
assets/server/...
go get -tags 'release' -d -v ngrok/...
go install -tags 'release' ngrok/main/ngrok
#执行完毕
执行完毕后可以在bin目录下看到生成的文件夹darwin_amd64,里面有文件ngrok执行文件
[root@jiba ngrok]# cd bin/
[root@jiba bin]# ll
total 65900
drwxr-xr-x 2 root root 4096 Oct 14 16:05 darwin_amd64
-rwxr-xr-x 1 root root 2772750 Sep 16 11:28 go-bindata
drwxr-xr-x 2 root root 4096 Oct 11 23:19 linux_arm
-rwxr-xr-x 1 root root 11837754 Oct 11 21:21 ngrok
-rwxr-xr-x 1 root root 9308318 Sep 16 14:46 ngrokd
-rw-r--r-- 1 root root 43535911 Oct 14 16:05 ngrok.log
-rwxr-xr-x 1 root root 301 Sep 16 14:39 start.sh
drwxr-xr-x 2 root root 4096 Oct 11 23:18 windows_amd64
[root@jiba bin]# ^C
[root@jiba bin]# ^C
[root@jiba bin]# cd darwin_amd64/
[root@jiba darwin_amd64]# ls
ngrok
nginx
nginx.conf配置
server {
    listen       80;
    server_name  *.ngrok.ithinkcry.cn;
    location / {
        proxy_pass http://172.26.88.76:18015;
        proxy_set_header Host $host:18015;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        client_max_body_size 10m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 90;
        proxy_read_timeout 90;
        proxy_buffer_size 4k;
        proxy_buffers 6 128k;
        proxy_busy_buffers_size 256k;
        proxy_temp_file_write_size 256k;
    }
    location ~ .*\.(gif|jpg|png|bmp|swf)$ {
        proxy_pass  http://172.26.88.76:18015;
        proxy_set_header    Host    $host:18015;
        expires 30d;
    }
    location ~ .*\.(js|css)?$ {
        proxy_pass  http://172.26.88.76:18015;
        proxy_set_header    Host    $host:18015;
        expires 1d;
    }
服务器端口配置
服务器开启端口
firewall-cmd --zone=public --add-port=4443/tcp --permanent
firewall-cmd --reload
阿里云安全组
域名解析配置
*.ngrok.ithinkcry.cn
ngrok.ithinkcry.cn
启动
服务端
[root@jiba bin]# ll
total 11804
-rwxr-xr-x 1 root root 2772750 Sep 16 11:28 go-bindata
-rwxr-xr-x 1 root root 9308318 Sep 16 11:29 ngrokd
drwxr-xr-x 2 root root    4096 Sep 16 11:34 windows_amd64
手动启动
[root@jiba bin]# ./ngrokd -domain="ngrok.ithinkcry.cn" -httpAddr=":18015" -httpsAddr=":18014" > ngrok.log &
编写脚本:
[root@jiba ngrok]# touch start.sh
[root@jiba ngrok]# vim start.sh
填写脚本内容
/home/zzj/ngrokcode/ngrok/bin/ngrokd  -tlsKey=/home/zzj/ngrokcode/ngrok/assets/server/tls/snakeoil.key -tlsCrt=/home/zzj/ngrokcode/ngrok/assets/server/tls/snakeoil.crt -domain="ngrok.ithinkcry.cn" -httpAddr=":18015" -httpsAddr=":18014" -tunnelAddr=":4443" > /home/zzj/ngrokcode/ngrok/bin/ngrok.log &
保存后,更改权限
[root@jiba ngrok]# chmod a+x start.sh
启动
[root@jiba bin]# ./start.sh
客户端
windows客户端  
客户端是windows,把之前生成的ngrok.exe复制到windows上
[root@jiba windows_amd64]# pwd
/home/zzj/ngrokcode/ngrok/bin/windows_amd64
[root@jiba windows_amd64]# ls
ngrok.exe
配置启动文件,或者直接手工启动: 文件ngrok.cfg 内容,端口就是-tunnelAddr 的端口,也是阿里云服务器安全组开启的端口
server_addr: "ngrok.ithinkcry.cn:4443"
trust_host_root_certs: false
启动文件,可以自动化设置的bat文件,内容:
@echo OFF
color 0a
Title Ngrok启动工具 
Mode con cols=109 lines=30
:START
Echo.
echo.
echo.
:TUNNEL
Echo               输入需要启动的域名前缀,如“aaa” ,即分配给你的穿透域名为:“aaa.ngrok.ithinkcry.cn”
ECHO.
ECHO.
ECHO.
set /p clientid=   请输入前缀:
echo.
set /p port=   请输入端口:
echo.
ngrok -config=ngrok.cfg -subdomain %clientid% %port%
PAUSE
goto TUNNEL
输入三级域名test 和对应的端口号8080
启动成功
或者手动启动:把本机的8080端口映射到服务器ngrok上面的test.ngrok.ithinkcry.cn去
ngrok -config=ngrok.cfg -subdomain test 8080
此时访问test.ngrok.ithinkcry.cn 就相当于访问本机的服务localhost:8080
linux客户端 
在编译生成的linux客户端 和 arm_linux 客户端 在复制到别的linux服务器上以后,不可以直接执行。 需要添加执行权限: chmowd a+x ngrok 然后可以使用 ./ngrok xxxxxxxxx 启动
在树莓派上启动
root@raspberrypi:/home/pi/files/ngrokcode/linux_arm# ls -l
total 10112
-rwxr-xr-x 1 pi pi 10346475 Sep 30 13:34 ngrok
-rw-r--r-- 1 root root 70 Oct 11 23:43 ngrok.cfg
-rwxr-xr-x 1 root root 326 Oct 12 00:01 start.sh
配置文件ngrok.cfg
server_addr: "ngrok.ithinkcry.cn:4443"
trust_host_root_certs: false
启动脚本start.sh
root@raspberrypi:/home/pi/files/ngrokcode/linux_arm# touch start.sh
root@raspberrypi:/home/pi/files/ngrokcode/linux_arm# chmod a+x start.sh
root@raspberrypi:/home/pi/files/ngrokcode/linux_arm# vim start.sh
root@raspberrypi:/home/pi/files/ngrokcode/linux_arm# cat ./start.sh
start.sh脚本内容如下:
echo " "
echo "Type in the Domain Name,like xxx represents xxx.ngrok.ithinkcry.cn "
read domainname
echo " "
echo "Type in the port of your application "
read appport
echo " "
echo your domain name is "$domainname" appport is "$appport"
./ngrok -log ./client.log -config ./ngrok.cfg -subdomain "$domainname" "$appport"
启动
root@raspberrypi:/home/pi/files/ngrokcode/linux_arm# ./start.sh
#我输入的子域名是arm,就是使用arm.ngrok.ithinkcry.cn,可以随意设置
Type in the Domain Name,like xxx represents xxx.ngrok.ithinkcry.cn
arm
#本机对应开启的应用的端口是8888,可以随意设置
Type in the port of your application
8888
your domain name is arm appport is 8888
查看client.log日志
[2019/10/12 00:09:52 CST] [INFO] (ngrok/log.Info:112) Reading configuration file ./ngrok.cfg
[2019/10/12 00:09:52 CST] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [client] Trusting root CAs: [assets/client/tls/ngrokroot.crt]
[2019/10/12 00:09:52 CST] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [view] [web] Serving web interface on 127.0.0.1:4040
[2019/10/12 00:09:52 CST] [INFO] (ngrok/log.Info:112) Checking for update
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [view] [term] Waiting for update
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] New connection to: 47.92.105.174:4443
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Writing message: {"Type":"Auth","Payload":{"Version":"2","MmVersion":"1.7","User":"","Password":"","OS":"linux","Arch":"arm","ClientId":""}}
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Waiting to read message
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Reading message with length: 120
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Read message {"Type":"AuthResp","Payload":{"Version":"2","MmVersion":"1.7","ClientId":"e8dc0d3fed22fc409d1f99680e727e84","Error":""}}
[2019/10/12 00:09:52 CST] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [client] Authenticated with server, client id: e8dc0d3fed22fc409d1f99680e727e84
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Writing message: {"Type":"ReqTunnel","Payload":{"ReqId":"1f029896a698059e","Protocol":"https+http","Hostname":"","Subdomain":"arm","HttpAuth":"","RemotePort":0}}
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Waiting to read message
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Reading message with length: 32
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Read message {"Type":"ReqProxy","Payload":{}}
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Waiting to read message
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [view] [term] Waiting for update
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Reading message with length: 134
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Read message {"Type":"NewTunnel","Payload":{"ReqId":"1f029896a698059e","Url":"https://arm.ngrok.ithinkcry.cn:18014","Protocol":"https","Error":""}}
[2019/10/12 00:09:52 CST] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [client] Tunnel established at https://arm.ngrok.ithinkcry.cn:18014
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Waiting to read message
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Reading message with length: 132
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Read message {"Type":"NewTunnel","Payload":{"ReqId":"1f029896a698059e","Url":"http://arm.ngrok.ithinkcry.cn:18014","Protocol":"http","Error":""}}
[2019/10/12 00:09:52 CST] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [client] Tunnel established at http://arm.ngrok.ithinkcry.cn:18014
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [ctl:8e6d426] Waiting to read message
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [view] [term] Waiting for update
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [view] [term] Waiting for update
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [pxy:6d62c42d] New connection to: 47.92.105.174:4443
[2019/10/12 00:09:52 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [pxy:6d62c42d] Writing message: {"Type":"RegProxy","Payload":{"ClientId":"e8dc0d3fed22fc409d1f99680e727e84"}}
[2019/10/12 00:09:53 CST] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [pxy:6d62c42d] Waiting to read message
[2019/10/12 00:09:55 CST] [INFO] (ngrok/log.Info:112) No update available
启动成功后的画面
错误
期间如果遇到tls: bad certificate 这种错误,可能是在设置openssl的时候出错了,或者服务端的地址和客户端ngrok.cfg中的地址不一样。 我的解决办法是,重新设置openssl,重新生成一遍,使用新的服务端和新的客户端,就可以了。
参考资料: https://www.pocketdigi.com/20161011/1490.html https://www.jianshu.com/p/cd937631a88b https://my.oschina.net/djsoft/blog/1786635 https://aotu.io/notes/2016/02/19/ngrok/index.html https://blog.csdn.net/ZHJ123CSDN/article/details/87886424 https://blog.csdn.net/u010444106/article/details/80457985  
Sail__
关注
关注
点赞
收藏
打赏
评论
ngrok服务器搭建和4种客户端使用方法
ngrok的作用和原理可以网上自行搜索查阅。环境如下:服务器 aliyun centos7.2域名 ithinkcry.cn客户端 windows 和 树莓派安装步骤如下:目录GoGitOpenSSL编译ngrok服务端:客户端:windows64位的客户端linux客户端arm_linux客户端mac客户端n...
复制链接
扫一扫
专栏目录
ngrok 客户端合集
03-21
ngrok 客户端合集,不用注册, 固定域名访问. 免去了每次重启都更换域名的烦恼
Ngrok——内网转发神器
最新发布
u014389734的博客
11-25
76
你只需要在你的本机上进行开发后,下载 ngrok ,运行一条简单的配置。,就可以直接让微信服务器和你的本地电脑通信,再也不用每次开发完成都需要将项目发布到服务器才能进行测试啦。感兴趣的童鞋还可以利用 VPS 自行搭建 ngrok 的服务,怎么样?听起来是不是很炫酷?我们可以在 github 下载到 ngrok 的源码自行编译后使用,当然也可以到 ngrok 的官网下载,无论是Windows,这里小白还向大家推荐一个国内的免费 ngrok 服务的网站,http://www.ngrok.cc/ 真的很不错哟!
评论 6
您还未登录,请先
登录
后发表或查看评论
最全ngrok实现内网穿透详细教程(windows )
qq_40595922的博客
10-21
808
ngrok实现内网穿透详细教程(windows )
ngrok内网穿透服务器和客户端
yangops的博客
09-30
984
内网穿透,ngrok
ngrok客户端windows下和linux下使用教程
qq_24347541的博客
03-22
6万+
ngrok的介绍:
Ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道。Ngrok可捕获和分析所有通道上的流量,便于后期分析和重放。简单来说,利用 Ngrok可以通过外网来访问部署在本地服务器的网站,它还提供一个Web管理页来监控HTTP通信报文,方便程序员发现问题、开发调试。另外Ngrok还支持TCP层端口映射,不局限于某一特定的服务。支持Mac OS X,...
【笔记】树莓派ngrok客户端使用
Sam's Blog
11-07
1630
首先获取ngrok,从自己的服务器生成下载。wget muumlover.com:8080/bin/linux_arm/ngrok生成ngrok配置ngrok.cfgcd /home/pi/
touch ngrok.cfg
vim ngrok.cfgserver_addr: muumlover.com:4443
trust_host_root_certs: false配置ngrok客户端启动cd /
ngrok服务端的搭建与客户端生成
qq_36505993的博客
03-15
944
前提是安装了Golang的Linux环境
下载
https://github.com/inconshreveable/ngrok/archive/refs/heads/master.zip
解压ngrok-master.zip
执行如下命令
export NGROK_DOMAIN="修改为你自己的域名"
cd /ngrok-master
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -s
ngrok服务搭建
车前猛跑
10-29
464
ps: 这边文章,一大半是抄的,一小半是自己踩坑的经验
设备环境:
服务端:ubuntu 16.04
客户端:mac os
阿里云解析
搭建步骤:
1. 下载安装go语言,git相关内容,不做赘述,直接上命令:
sudo apt-get install build-essential golang mercurial git
2. Clone ngrok代码:
git clone...
微软服务器搭建ngrok,ngrok搭建(Windows服务端+Windows客户端)
weixin_30653755的博客
08-10
917
1.go环境搭建(需要Linux系统)1)下载源码,可以在http://www.golangtc.com/download2)将其解压到/usr/local目录下:tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz3).在root环境下执行如下命令:mkdir $HOME/goecho ‘export GOROOT=/usr/local/go’&gt...
手把手教你搭建基于ngrok私有云存储服务
热门推荐
mose-x
12-24
10万+
前段时间,闲置了个1核1G1M的服务器,就搞了个树莓派玩玩,随手搭建了个私有云存储,也看了一些教程,发现坑比较多,自己就重写个
准备工作
申请域名,如 domain.cn
可远程访问的服务器一台(linux64),并且备案(未备案域名只能用大陆外服务器)
设置域名解析,如 ngrok.domain.cn
申请域名所需SSL证书(非必须,除非你要开启https访问)
服务端安装
服务器安装unzip解压命令yum install -y unzip
下载服务端文件server.zip
解压后启动,启动
Ngrok服务器+客户端搭建教程
聆听风雨的博客
09-12
198
https://www.jianshu.com/p/f5c2a55e77bd
注意,云服务器要对相关端口放开,系统的防火墙也要放开
有一些端口是被运营商屏蔽了的,比如4444,不能用的
web服务器搭建之ngrok篇
CZH
04-16
3万+
ngrok介绍许多刚学java web的同学(包括我自己)肯定都非常好奇,如何在外网上访问自己做的项目,跟我们本地访问tomcat有什么区别?今天就向大家介绍一个非常强大的外网映射工具:ngrok.ngrok可以把你的本地ip(127.0.0.1|localhost)映射成一个公网域名,这样所有人都可以通过这个域名来访问你的项目,这个功能对本地调试,特别是微信公众号开发带来了极大的便利.示例:
3分钟快速搭建ngrok服务器
懵萌长颈鹿的博客
09-03
5279
以下仅是个人学习记录,说明并不全,请见谅。
一、前提准备:
云服务器centos+已解析域名xxxx.com
二、环境搭建:
1. 基础环境
yum -yinstallzlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMakerhg ...
搭建Ngrok服务器实现内网的计算机实现远程桌面
云深海阔专栏
08-05
3658
一、部署环境
1、linux外网系统服务器一台
2、一个域名,域名可以不备案,绑定到服务器上
二、搭建Ngrok服务器(开始进行服务器搭建)
1.安装GNU编译器套件、git(用于下载Ngrok源码)、以及GO语言环境
[root@centos ~]# yum -y install gcc
[root@centos ~]# yum install git -y
[root@ce...
Centos7快速搭建Ngrok服务器及配置文件详解
Mew的博客
03-14
3079
准备工作:
一台具有公网IP的服务器(服务器端)
一个已经解析到此服务器的域名
内网服务器(客户端)
步骤:
一、服务器端的操作
安装git(先卸载旧版本)
yum remove git
yum install epel-release
yum install https://centos7.iuscommunity.org/ius-release.rpm
yum install gi...
go get私有仓库问题集锦
小白菜的专栏
02-09
785
未提供https
go env -w GOINSECURE=gitdemo.com
鉴权问题
get "gitlab.com/xxx/zz": found meta tag get.metaImport{Prefix:"gitlab.com/xxx/zz", VCS:"git", RepoRoot:"https://gitlab.com/xxx/zz.git"} at //gitlab.com/xxx/zz?go-get=1 verifying gitlab.com/xxx/zz@v0.0.1: gitl
ngrok内网穿透
大强博客
12-13
1372
将本地Web服务器公开到Internet
ngrok允许您将本地计算机上运行的Web服务器公开到Internet。告诉ngrok您的Web服务器正在侦听哪个端口。
如果您不知道Web服务器正在侦听哪个端口,则可能是端口80,即HTTP的默认端口。
示例:将本地计算机的端口80上的Web服务器公开到Internet
ngrok http 80
当您启动ngrok时,它将在终端中显示一个U...
使用ngrok客户端进行内网穿透
weixin_47142014的博客
05-03
188
**Sunny-Ngrok客户端 下载地址 https://www.ngrok.cc
一、下载Ngork客户端
下载压缩包后解压到本地
二、开通服务器
注册帐号进入个人中心
点击隧道管理➡开通隧道(这里选择免费服务器,免费服务器人数多,嫌慢可以10元开通一个月的200M服务器)
选择确定就好
选择https需要有自定义域名,并且需要把域名CNAME解析到free.idcfengye.com,一般默认http
三、使用ngrk客户端开启隧道
成功开通隧道后,返回个人中心点击隧道管理查看隧道id
打开
内网穿透-ngrok原理浅析
苏南生的CSDN博客
09-11
1万+
之前在进行微信Demo开发时曾用到过ngrok这个强大的tunnel(隧道)工具,ngrok在其github官方页面上的自我诠释是
“introspected tunnels to localhost",这个诠释有两层含义:
1、可以用来建立public到localhost的tunnel,让居于内网主机上的服务可以暴露给public,俗称内网穿透。
2、支持对隧道中数据的introspec
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:精致技术
设计师:CSDN官方博客
返回首页
Sail__
CSDN认证博客专家
CSDN认证企业博客
码龄10年
暂无认证
64
原创
4万+
周排名
191万+
总排名
17万+
访问
等级
2398
积分
28
粉丝
63
获赞
68
评论
228
收藏
私信
关注
热门文章
Netty设置option警告Unknown channel option
20334
Mysql共享锁和排他锁
13235
bash: ./cmd.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录 解决办法
8804
ElasticSearch7.3 JAVA API查询 删除
8579
InfluxDB环境搭建以及在Springboot中的简单使用
7372
分类专栏
Windows Teams
2篇
JAVA
22篇
react
1篇
ELK搭建及使用
5篇
navicat
1篇
Spark
1篇
docker
ngrok
1篇
InfluxDB
1篇
设计模式
2篇
7篇
其他
1篇
JavaScript
4篇
nginx
3篇
MAVEN
1篇
linux
8篇
git
2篇
ssh
2篇
vue
1篇
quasar
2篇
redis
5篇
消息队列
1篇
tomcat
2篇
springboot
2篇
shell
3篇
storm
2篇
hbase
2篇
mysql
3篇
netty
2篇
SIM868
2篇
python
hadoop
1篇
mongodb
1篇
nacos
1篇
dubbo
1篇
elasticsearch
5篇
SpringCloud
2篇
php
1篇
wordpress
1篇
最新评论
阿里云服务器养只大虫子:Redis漏洞挖矿造成CPU100%的解决办法
清风亦思雨:
真难搞,直接重装系统
JAVA简单链接Oracle数据库,实现注册和登陆的功能
zpw_1212:
请问博主,这个数据库表中三个列的除了列名之外的属性信息是什么啊,连接上了数据库但是数据存储不到数据库里
ngrok服务器搭建和4种客户端使用方法
N鲜衣怒马:
博主您好,按照您的文章,我运行起来了,但是有关nignx配置文件出错了,可以私法一份完整版的nginx文件么,谢谢博主。我的邮箱是2015009585@qq.com
使用私钥Shell登录Linux服务器
code_carrot:
你好,之前在其他电脑上生成的公钥私钥,公钥放服务器了,现在换电脑了,还可以用之前的私钥登陆服务器么?
SIM868 GPS模块指令中文解释
Creator_v:
SIM868模块的GPS指令好像不能保存到flash中 资料少 没有中文的 英文的 好多地方不好细看
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Windows Teams -- Ngrok 的Https配置
Windows Teams - Visual Studio Code 初始化工程
使用私钥Shell登录Linux服务器
2020年4篇
2019年48篇
2018年3篇
2014年7篇
2013年9篇
目录
目录
分类专栏
Windows Teams
2篇
JAVA
22篇
react
1篇
ELK搭建及使用
5篇
navicat
1篇
Spark
1篇
docker
ngrok
1篇
InfluxDB
1篇
设计模式
2篇
7篇
其他
1篇
JavaScript
4篇
nginx
3篇
MAVEN
1篇
linux
8篇
git
2篇
ssh
2篇
vue
1篇
quasar
2篇
redis
5篇
消息队列
1篇
tomcat
2篇
springboot
2篇
shell
3篇
storm
2篇
hbase
2篇
mysql
3篇
netty
2篇
SIM868
2篇
python
hadoop
1篇
mongodb
1篇
nacos
1篇
dubbo
1篇
elasticsearch
5篇
SpringCloud
2篇
php
1篇
wordpress
1篇
目录
评论 6
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
Sail__
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值