首页
归档
留言
广告合作
友链
美女主播
Search
1
博瑞GE车机升级/降级
5,174 阅读
2
修改elementUI中el-table树形结构图标
4,542 阅读
3
Mac打印机设置黑白打印
4,536 阅读
4
Mac客户端添加腾讯企业邮箱方法
4,373 阅读
5
intelliJ Idea 2022.2.X破解
4,093 阅读
Java
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
登录
/
注册
Search
标签搜索
Spring Boot
Java
Spring Cloud
Mac
mybatis
WordPress
Nacos
Spring Cloud Alibaba
Mybatis-Plus
jQuery
Java Script
asp.net
微信小程序
Sentinel
UniApp
MySQL
asp.net core
IntelliJ IDEA
Jpa
树莓派
Laughing
累计撰写
576
篇文章
累计收到
1,425
条评论
首页
栏目
Java
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
页面
归档
留言
广告合作
友链
美女主播
搜索到
2
篇与
的结果
2020-11-11
自建ngrok服务器,实现树莓派内网穿透
一、前言最近买了个树莓派4b 8g版本的,想着当作个人网盘使用。正好平时开发用的MySQL、nginx、redis等软件也可以放到树莓派上面跑了。二、准备材料服务器,用来搭建ngrok的服务器,必须有公网IP能正常访问。我用的是centos7.5域名,用来做映射。两个条件缺一不可。如何无法满足上述条件,只能去买别人搭建好的了,但是费用也不低。某网的是10元/月,但是现在腾讯云搞活动,云服务器平均一个月最低才7.3,而且不限制老用户。我其实也是今天薅了个羊毛。三、搭建配置域名比如我用lisen.me做映射,那么必须要配置好lisen.me还有*.lisen.me,将域名指向公网IP。安装git和Golang这个比较简单,直接执行下面的命令即可apt-get install build-essential golang mercurial git下载源码此处使用非官方地址,修复了部分包无法获取git clone https://github.com/tutumcloud/ngrok.git ngrok生成签名证书使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自建ngrokd服务,如果不想买SSL证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。cd ngrok NGROK_DOMAIN="lisen.me" openssl genrsa -out base.key 2048 openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt注意替换域名:将lisen.me替换成自己的域名替换默认证书执行完成后需要替换证书cp base.pem assets/client/tls/ngrokroot.crt执行完命令后,会提示是否覆盖,输入y回车即可。编译服务端make release-server release-client运行服务端编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 就是服务端程序了。./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="lisen.me" -httpAddr=":80" -httpsAddr=":443"注意替换域名httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。编译客户端不同客户端编译方法不一样,我这里只介绍win和树莓派的8.1 windows 64位GOOS=windows GOARCH=amd64 make release-client 8.2 树莓派GOOS=linux GOARCH=arm make release-client执行对应的命令会在bin目录下生成相对应的windows和linux_arm的目录,客户端分别放到两个目录中。下载客户端到要穿透的电脑并配置因为我使用树莓派运行,所以下载linux_arm目录下的ngrok,然后上传到树莓派系统。配置客户端在ngrok同级目录创建文件ngrok.cfg,并配置信息,我配置的比较多,按需配置即可server_addr: lisen.me:4443 trust_host_root_certs: false tunnels: weixin: subdomain: www proto: http: 80 about: subdomain: seafile proto: http: 8000 ssh: remote_port: 222 proto: tcp: 22 vnc: remote_port: 5900 proto: tcp: 5900 mysql: remote_port: 3306 proto: tcp: 3306 redis: remote_port: 6379 proto: tcp: 6379 采用严格的单空格缩进,可以代理其他主机,直接跟端口默认是本主机,还要注意防火墙的配置。运行客户端./ngrok -config ngrok.cfg start-all启动后出现online字样说明内网穿透成功。四、配置服务端开机自启思路很简单,就是在/etc/systemd/system/目录下创建一个叫做ngrok.service的文件,然后写入一下代码:[Unit] Description=ngrok After=network.target [Service] Type=simple ExecStart=/usr/bin/ngrok/bin/ngrokd -tlsKey=/usr/bin/ngrok/server.key -tlsCrt=/usr/bin/ngrok/server.crt -domain="lisen.me" -httpAddr=:80 -httpsAddr=:443 > /dev/null 2>&1 & [Install] WantedBy=multi-user.target这样的话系统就会把我们的脚本识别为服务,然后我们就可以用systemctl这个工具来轻松管理ngrok的运行与启动。运行ngroksystemctl start ngrok查询ngrok状态systemctl status ngrok实现开机启动systemctl enable ngrok五、配置客户端开机自启思路很简单,就是在/etc/systemd/system/目录下创建一个叫做ngrok.service的文件,然后写入一下代码:[Unit] Description=ngrok After=network.target [Service] Type=simple ExecStart=/home/pi/ngrok/ngrok -config /home/pi/ngrok/ngrok.cfg start-all [Install] WantedBy=multi-user.target这样的话系统就会把我们的脚本识别为服务,然后我们就可以用systemctl这个工具来轻松管理ngrok的运行与启动。运行ngroksystemctl start ngrok查询ngrok状态systemctl status ngrok实现开机启动systemctl enable ngrok
2020年11月11日
1,604 阅读
0 评论
0 点赞
2018-05-24
ngrok服务器搭建
必要材料服务器,用来搭建ngrok的服务器,必须有公网ip,并且可以正常访问域名,用来生成访问域名。我用的是腾讯云的Centos7 X64的安装git 和Golangyum install build-essential golang mercurial gitGolang,Go语言支持,因为Ngrok是基于Go语言编写的下载源码,当然也可以不安装git,但是需要手动上传代码到需要的位置此处使用非官方地址,修复了部分包无法获取git clone https://github.com/tutumcloud/ngrok.git ngrok生成自签名证书使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自建ngrokd服务,如果不想买SSL证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。证书生成过程需要一个NGROK_BASE_DOMAIN。如果你要提供服务的地址为“example.ngrok.xxx.com”,那NGROK_BASE_DOMAIN就应该 是“ngrok.xxx.com”。这里我使用自己的域名“ide.net.cn”。cd ngrok NGROK_DOMAIN="ide.net.cn" openssl genrsa -out base.key 2048 openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt 执行完成后需要替换证书cp base.pem assets/client/tls/ngrokroot.crt 编译make release-server release-client 编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 就是服务端程序了。启动服务端./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ide.net.cn" -httpAddr=":80" -httpsAddr=":443"httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。由于微信限制不能出现端口号,因此这个使用了80、443端口。编译客户端windowsGOOS=windows GOARCH=amd64 make release-client macGOOS=darwin GOARCH=amd64 make release-client 执行对应的命令会在bin目录下生成相对应的windows、mac目录,ngrok.exe就存放在对应目录下。将对应的ngrok.exe下载到本地。设置本地客户端在同级目录下新建一个配置文件ngrok.cfgserver_addr: "ide.net.cn:4443" trust_host_root_certs: false同级目录下新建一个启动脚本startup.bat@echo on cd %cd% #ngrok -proto=tcp 22 #ngrok start web ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080 其中,-config指向配置文件,-log存放日志文件位置,-subdomain为自定义的域名前缀。8080为端口号。启动,点击启动脚本startup.bat完成启动。设置为系统程序,并后台运行。服务器在运行ngrok时,如果关闭会话窗口,会导致服务中断,很显然这不是我们想要的结果,我们需要服务不断的在后台运行,当需要的时候在停止。在/etc/systemd/system/目录下创建服务ngrok.service,内容为[Unit] Description=ngrok After=network.target [Service] ExecStart=/myweb/ngrok/bin/ngrokd -tlsKey=/myweb/ngrok/server.key -tlsCrt=/myweb/ngrok/server.crt -domain="ide.net.cn" -httpAddr=":80" -httpsAddr=":443" [Install] WantedBy=multi-user.target 其中要根据自己的实际目录修改相对应的目录。这样我们就可以了通过systemctl start ngrok.service启动服务。然后就可以愉快的玩耍了。温馨提示上面设置启动脚本的我一直没成功,我是通过下面命令使用后台服务进行了,关闭窗口同样不会导致服务退出setsid ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ide.net.cn" -httpAddr=":80" -httpsAddr=":443"
2018年05月24日
1,240 阅读
0 评论
1 点赞