搭建ngrok内网穿透服务器

服务器环境:ubuntu20.04 (需要有外网IP)

客户端环境:ubuntu20.04 (也可以是windows和Mac)

1、安装golang和git

        sudo apt update

        sudo apt install golang git

        安装完成,未防止go的版本太新编译不过,需关闭module模式(因为源码很老)

        还好目前apt安装的golang是1.3版本也比较老,也直接使用

        #关闭module模式
        go env -w GO111MODULE=off

2、下载ngrok源码 

git clone https://github.com/haungjianli/ngrok ~/ngrok

  解压源码 

cd ~
tar -C ./ -zxvf ngrok/ngrok.tar.gz

3、生成证书 需要用到域名,去腾讯云申请个几块的就可以了

依次执行下来命令即可 ,其中 ngrok.site 替换成申请的域名

#进入ngrok目录
cd ~/ngrok

#生成证书
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.site" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.site" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000


#替换证书
yes|cp rootCA.pem assets/client/tls/ngrokroot.crt
yes|cp device.crt assets/server/tls/snakeoil.crt
yes|cp device.key assets/server/tls/snakeoil.key

 #进入ngrok目录

cd ~/ngrok

#生成证书 其中ngrok.site 替换成你的域名

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.site" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.site" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

 #替换证书

yes|cp rootCA.pem assets/client/tls/ngrokroot.crt
yes|cp device.crt assets/server/tls/snakeoil.crt
yes|cp device.key assets/server/tls/snakeoil.key

4、生成服务端和客户端

  编译完成会在bin里生成 服务端程序ngrokd 和客户端 ngrok

<!--linux服务端/客户端-->
GOOS=linux GOARCH=386 make release-server (32位)
GOOS=linux GOARCH=amd64 make release-server(64位)

GOOS=linux GOARCH=386 make release-client (32位)
GOOS=linux GOARCH=amd64 make release-client(64位)

<!--Mac OS服务端/客户端-->
GOOS=darwin GOARCH=386 make release-server
GOOS=darwin GOARCH=amd64 make release-server

GOOS=darwin GOARCH=386 make release-client
GOOS=darwin GOARCH=amd64 make release-client


<!--windows服务端/客户端-->
GOOS=windows GOARCH=386 make release-server
GOOS=windows GOARCH=amd64 make release-server

GOOS=windows GOARCH=386 make release-client
GOOS=windows GOARCH=amd64 make release-client

5、启动服务器

cd ~/ngrok/bin
sudo ./ngrokd -httpAddr=:80 -httpsAddr=:443 -tunnelAddr=:4443

  也可直接 sudo ./ngrokd  启动,默认值 -httpAddr=:80 -httpsAddr=:443 -tunnelAddr=:4443

6、启动客户端

  创建配置文件 ngrok.cfg,根据需要写入以下内容

server_addr: "you.domain:4443"
  
trust_host_root_certs: false 

tunnels:
    ssh:
        remote_port: 9022
        proto:
            tcp: "127.0.0.1:22"
    svn:
        remote_port: 13690
        proto:
            tcp: "127.0.0.1:3690"

  linux下启动客户端

./ngrok -config=ngrok.cfg start ssh svn

 windows下启动客户端

 编写一个bat文件,通过bat启动即可

start ngrok -config=ngrok.cfg start ssh svn

8、设置为系统程序,并后台运行

在/etc/systemd/system/目录下创建服务ngrok.service,内容为

 服务端

[Unit]
Description=ngrok
After=network.target

[Service]
ExecStart=/全路径/ngrok/bin/ngrokd -httpAddr=":8080" -httpsAddr=":8443" -tunnelAddr=:4443
Restart=always

[Install]
WantedBy=multi-user.target

客户端

[Unit]
Description=ngrok
After=network.target

[Service]
ExecStart=/home/eagle/ngrok/ngrok -config=/home/eagle/ngrok/ngrok.cfg -log=/home/eagle/ngrok/log/ngrok.log start ssh svn

[Install]
WantedBy=multi-user.target

重新加载配置 systemctl 

sudo systemctl daemon-reload

启动服务

systemctl start ngrok.service

设置开机启动

sudo systemctl enable ngrok.service

参考:

        10分钟教你搭建自己的ngrok服务器_Small-Young的博客 

        内网穿透-Ngrok服务器搭建教程

 Linux搭建Ngrok服务器详细过程_linux ngrok_学徒级选手的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值