首页 > 编程知识 正文

路由器内网穿透(内网穿透工具ngrok)

时间:2023-05-03 08:51:24 阅读:101293 作者:2110

1.基础环境

# 安装(同地面控制中心)地面控制中心

好吃安装(同groundcontrolcenter)地面控制中心

好吃安装海湾合作委员会

安装戈朗,下载地址在https://studygolang.com/dl中找的,想换版本可以在这里找

wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz

go1.8.linux-amd64.tar.gz

vi /etc/profile #文件中加上环境变量

导出GOROOT=你的去解压地址(如:/root/go)

导出路径=$PATH:$GOROOT/秀丽的面包

来源/etc/profile #使环境生效(或者重启:重新启动)

去版本#查看去是否安装成功

2.下载源码

#安装饭桶用于下载ngrok代码

好吃安装饭桶

#克隆代码,文件夹命名为ngrok-服务器,也可以填写,默认就是ngrok

饭桶克隆https://github.com/inconshreveable/ngrok.git恩格罗-服务器

3.ngrok配置

执行一下命令。使用ngrok.com官方服务时,我们使用的是官方的加密套接字协议层证书。自建ngrokd服务,如果不想买加密套接字协议层证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。

证书生成过程需要一个NGROK_BASE_DOMAIN。填写我们的域名地址

CD ngrok-服务器#进入安装根目录

NGROK_DOMAIN='ngrok .你的域名网站

OpenSSL gen RSA-out rootka。密钥2048

打开SSL请求-新建-x509-节点-密钥rootka。key-days 10000-subject '/CN=$ NGROK _ DOMAIN '-out rootka。PrivacyEnhancedMail增强的私密电子邮件

OpenSSL gen RSA-out服务器。密钥2048

打开SSL请求-新密钥服务器。key-subject '/CN=$ NGROK _ DOMAIN '-out服务器。企业社会责任

OpenSSL x509-请求输入服务器。CSR-CA rootka。PEM-CAkey rootka。密钥创建连续天数为10000天的服务器。同  

4.复制证书

经过以上步骤,证书已经生成,下面复制证书到默认读取目录下

#复制rootCA.pem到资产/客户/tls/并更名为ngrokroot.crt

cp rootCA.pem资产/客户端/TLS/ngrockroot。同  

#复制服务器。阴极射线管到资产/服务器/tls/并更名为蛇油。阴极射线管

cp服务器. crt资产/服务器/TLS/snail oil . CRT

#复制server.key到资产/服务器/tls/并更名为蛇油。钥匙

cp服务器. key资产/服务器/tls/snakeoil.key

上面会让你提示是否覆盖,输入y即可。如果不想每次都提示,可以使用如下命令,这是一个骚操作。

丙酸纤维素前面加上一个,然后加上-射频即可没有提示,直接覆盖。

cp -rf rootCA.pem资产/客户端/TLS/ngrockroot。同  

cp -rf服务器. crt资产/服务器/TLS/snail oil . CRT

CP-射频服务器。关键资产/服务器/TLS/蛇油。键

5.https配置

网站配置加密套接字协议层证书(https),使网站可以通过https访问

我们申请的是让我们加密通配符加密套接字协议层证书,因为他是免费的

1.获取Certbot客户端

下载Certbot客户端,并且添加可执行权限

cd /usr/local/

wget https://dl.eff.org/certbot-auto

chmo

d a+x certbot-auto

./certbot-auto certonly -d "*.ngrok.你的域名.com" -d "ngrok.你的域名.com" --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

执行到最后一步时,先暂时不要回车。申请通配符证书是要经过DNS认证的,接下来需要按照提示在域名后台添加对应的DNS TXT记录。等个10分钟左右

确认生效后,回车继续执行

更换证书

cd /root/ngrok-server

cp /etc/letsencrypt/live/ngrok.你的域名.com/privkey.pem /root/ngrok-server/assets/server/tls/snakeoil.key

cp /etc/letsencrypt/live/ngrok.你的域名.com/fullchain.pem /root/ngrok-server/assets/server/tls/snakeoil.crt

cp /etc/letsencrypt/live/ngrok.你的域名.com/fullchain.pem /root/ngrok-server/assets/client/tls/ngrokroot.crt

6.生成程序

生成客户端和服务器端

#win服务端

GOOS=windows GOARCH=386 make release-server

#win客户端

GOOS=windows GOARCH=386 make release-client

#linux服务端

GOOS=linux GOARCH=386 make release-server

#linux客户端

GOOS=linux GOARCH=386 make release-client

我只用到linux服务器端和win客户端,我只需要执行如下即可。

根据自己需要生成

#linux服务端

GOOS=linux GOARCH=386 make release-server

#win客户端

GOOS=windows GOARCH=386 make release-client

第一次生成需要点时间,因为golang编译需要下载一些插件。

编译后的软件在秀丽的面包目录下

httpAddr,httpsAddr为访问服务端端口,可以设置为80和443,访问的时候不用加端口号.

tunnelAddr为给客户端提供的连接端口默认4443可自行修改,这里改为8092

### 后台运行

使用服务模式

将以下代码保存为ngrokd.service文件,放在/etc/systemd/system/目录

注意替换路径 root/ngrok-server/秀丽的面包/linux_386/ 为ngrok服务端目录

#/etc/systemd/system/ngrokd.service

[Unit]

Description=ngrok

After=network.target

[Service]

ExecStart=/root/ngrok-server/秀丽的面包/linux_386/ngrokd -tlsKey="/root/ngrok-server/assets/server/tls/snakeoil.key" -tlsCrt="/root/ngrok-server/assets/server/tls/snakeoil.crt" -domain="ngrok.你的域名.com" -httpAddr=":8090" -httpsAddr=":8091" -tunnelAddr=":8092"

LimitNOFILE=1048576

LimitNPROC=1048576

Restart=always

RestartSec=10

StartLimitInterval=0

[Install]

WantedBy=multi-user.target

systemctl enable ngrokd.service#开机启动ngrokd服务

systemctl start ngrokd.service#启动ngrokd服务

注意:阿里云需要配置安全组规则

7.客户端

下载秀丽的面包/windows_386目录下的ngrok.exe文件

http/https

ngrok.cfg

server_addr: ngrok.你的域名.com:8092

trust_host_root_certs: false

start.bat

@echo OFF

set /p clientid= 请输入域名前缀:

echo.

set /p port= 请输入内网端口:

echo.

ngrok -config=ngrok.cfg -proto=http -subdomain=%clientid% %port%

# https使用

# ngrok -config=ngrok.cfg -proto=https -subdomain=%clientid% %port%

运行start.bat

tcp

start.bat

start ngrok.exe -proto=tcp -config=tcp.cfg start vnc ssh

ngrok.cfg

server_addr: ngrok.你的域名.com:8092

trust_host_root_certs: false

tunnels:

ssh:# 名称

remote_port: 33333 #服务器分配tcp转发端口,不填写由服务器随机分配

proto:

tcp: 33333 #映射本地的端口

vnc:# 名称

remote_port: 33339

proto:

tcp: 33339

注意:tcp需要开放对应的端口

8.注意事项

服务器的安全组一定要配置。关闭防火墙。域名泛解析 *.ngrok.你的域名.com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。