自搭ngrok服务器
在阿里云服务器自己搭 ngrok 的服务器,步骤基本跟着 [1, 2] 一步步来,本人需要用到:
- 一个 linux 的 server 软件,放在有公网 IP 的服务器上(那个阿里云服务器);
- 一个 linux 的 client 软件,放在自己的内网 linux 机器上;
- 一个 windows 的 client 软件,放在自己的内网 windows 机器上;
这里仅提几点注意:
- 我那个阿里云服务器有个域名,在管理页可以看的,生成证书时设置
export NGROK_DOMAIN="<那个域名>"
就是用这个域名,后面 ngrokd 的运行参数、client 端的配置文件也要用到(好像说只要内网穿透的话只用 ip 也行?); - 编译前要改两处源代码,使 ngrok 从用 ipv6 转回用 ipv4,见 [2],具体就是:
- src/ngrok/server/tunnel.go 文件中
net.ListenTCP
后面的tcp
改为tcp4
; - src/ngrok/conn/conn.go 文件中
net.Listen
后面的tcp
改为tcp4
;
- src/ngrok/server/tunnel.go 文件中
- 前作 [6]在小米球下的 windows 客户端软件好像不能用了,因为编译的时候会将证书也一起写进软件里(所谓 证书 参见 [1, 2] 的配置过程),所以在编译的时候总共要编译三个文件:linux 的 server、linux 的 client、windows 的 client,即这几条:
# linux server GOOS=linux GOARCH=amd64 make release-server # linux client GOOS=linux GOARCH=amd64 make release-client # windows client GOOS=windows GOARCH=amd64 make release-client
- 要开放防火墙对应端口,用到哪些就开哪些,比如 ngrokd 运行的
tunnelAddr
和httpAddr
、客户端配置文件里用到的那些端口,这些。下面贴配置文件再说; - 阿里云的服务器需要需要在它的网页开放防火墙端口,在系统里设置是没用的(那个阿里云的系统里 firewalld 和 iptables 根本就没开),参考 [3];
ngrokd
ngrokd
就是 ngrok 的 server 软件的名字,为了启动方便,将启动命令写成 shell 文件,用到nohup
后台运行,也可以用screen
。log 文件的操作见 [7]。
#!/usr/bash
# run.ngrokd.shNGROKD=/root/tom/ngrok/bin
DATE=$(date +%Y-%m-%d-%H-%M)
LOG=/root/tom/log/ngrokd.$DATE.lognohup $NGROKD/ngrokd -domain="<那个域名>" -tunnelAddr=":4443" \--httpAddr=":50018" \--httpsAddr=":50019" \> $LOG 2>&1 &
这里出现的tunnelAddr
、httpAddr
、httpsAddr
要在防火墙那放行。
auto run
将 ngrokd 设成开机启动,参考 [4, 5],在/etc/rc.d/init.d
放一个 shell 脚本:
#!/bin/sh
# chkconfig: 2345 55 25sh /root/tom/run.ngrokd.sh
就是运行上面写的那个 ngrokd 启动命令脚本,但注意# chkconfig: 2345 55 25
这行,是我从同目录下的nginx
文件那抄来的,不加这行 [4] 中用chkconfig
的几条命令会报错,见 [5],加上就解决了。
ngrok
client 端的软件叫 ngrok,这里分 windows 和 linux 两台内网机器。
这两个内网 client 的配置文件中用到若干端口(那几个50
开头的),也要在防火墙放行。
in windows machine
将编译出来的软件下载到自己的 windows 机器,就一个ngrok.exe
文件。
基本配置跟之前的 [6] 差不多,就是改下配置文件(ngrok.windows.conf)。
# ngrok.windows.conf
server_addr: "<那个域名>:<上面的 tunnelAddr>"
trust_host_root_certs: falsetunnels:sshW:remote_port: 50000proto:tcp: 127.0.0.1:22mstscW:remote_port: 50001proto:tcp: 127.0.0.1:3389jupyterW:remote_port: 50002subdomain: jupyter148proto:http: 127.0.0.1:8888tensorboardW:remote_port: 50003subdomain: tensorboard148proto:http: 127.0.0.1:6006
将启动命令写成 .bat 文件:
@echo off
set DAY=%date:~0,4%-%date:~5,2%-%date:~8,2%
set TIME=%time:~0,2%-%time:~3,2%
set NGROK=E:\ngrok
set LOG=%NGROK%\log\ngrok.%DAY%-%TIME%.log%NGROK%\ngrok.exe -config=%NGROK%\ngrok.windows.conf -log=%LOG% start sshW mstscW jupyterW tensorboardW
注意这里用新编译的那个 ngrok.exe,而不是用 [6] 里下的那个。[6] 下的那个也能用,但配置文件就用回 [6] 里的配置文件。
in linux machine
也是下那个 linux 的 client 软件,也是只有也个ngrok
文件,放在自己内网的 linux 机器。
配置文件 ngrok.linux.conf
# ngrok.linux.conf
server_addr: "<那个域名>:<上面的 tunnelAddr>"
trust_host_root_certs: falsetunnels:sshL:remote_port: 50010proto:tcp: 127.0.0.1:22jupyterL:remote_port: 50012subdomain: jupyter243proto:http: 127.0.0.1:8888tensorboardL:remote_port: 50013subdomain: tensorboard243proto:http: 127.0.0.1:6006
这里不用 mstsc,因为那个是 windows 的远程登录。
启动命令:
#!/bin/sh
DATE=$(date +%Y-%m-%d-%H-%m)
./ngrok -log=log/ngrok.$DATE.log -config=ngrok.linux.conf start sshL jupyterL tensorboardL
References
- 内网穿透 ngrok 服务器和客户端配置
- ngrok 实现内网穿透
- 阿里云端口开放
- Linux CentOS 开机自动启动的设置方法
- 解决“service nginx does not support chkconfig”的问题?
- 用ngrok穿透内网访问windows
- .bat和.sh生成带时间的log文件
- Ubuntu开机启动脚本
自搭ngrok服务器相关推荐
- ngrok linux开机自启动,CentOS 搭建ngrok服务器
原标题:CentOS 搭建ngrok服务器 1一.前提条件 1. 准备好一台主机,带公网IP 2. 准备一个一级域名,做好泛解析(二级域名的没有配置成功,汗...) 切记 一定要做好域名泛解析 二.安 ...
- 使用netkit搭pppoe服务器
使用netkit搭pppoe服务器 @(工作笔记)[工作笔记, netkit] 关于netkit的使用前一遍文章已有说明,这一篇文章主要介绍另一种使用场景,netkit里面搭的虚拟网络拓扑怎么连接到真 ...
- 阿里云centos6.9搭建ngrok服务器
准备工作:(1)阿里云ECS服务器(2)自己的域名 1,安装gcc centos查看是否安装了gcc命令 rpm -qa|grep gcc* 没有就需要安装 yum install ...
- 10分钟教你搭建自己的ngrok服务器
内网穿透想必开发过微信的同志都很了解,大部分人选择网上寻找各种现成的,比如ngrok官网.ittun-ngrok.sunny-ngrok或者花生壳之类的.但是世界上没有免费的午餐,要不就是收费,要不就 ...
- Windows搭建ngrok服务器、Linux搭建ngrok服务器、支持用户管理
微信公众号.支付宝支付等开发要求有公网(外网)服务器.每次调试时,上传代码到服务器很不方便.ngrok很好的解决了这一问题.网上的文章大多是讲怎么在Linux下搭建ngrok服务器.其实依靠云计算的强 ...
- 搭建ngrok服务器
要搭建 ngrok 服务器,首先需要在本地安装 ngrok,安装完成后在命令行中输入 ngrok authtoken <YOUR_AUTH_TOKEN> 来设置认证令牌. 接下来,使用 n ...
- 一分钟实现内网穿透(ngrok服务器搭建)
简单来说内网穿透的目的是:让外网能访问你本地的应用,例如在外网打开你本地http://127.0.0.1指向的Web站点. 最近公司的花生壳到期了,要续费,发现价格一直在涨,都是5年以上的老用户,旗舰 ...
- 搭建ngrok服务器,实现内网穿透服务,实现外网到内网的在线访问
一:前言 场景问题: 如果本地的项目在没有服务器的情况下,需要让他人访问: 在自己的电脑上搭建一个web服务器,实现本地的访问和外部的访问.我们就要做内网穿透了,内网穿透就是别人通过外网能够访问到我们 ...
- ngrok服务器搭建流程
ngrok服务器搭建流程 微信开发内网测试问题一直是一个困扰开发者的问题,ngrok服务是一个很好的解决方案,网上有类似的工具比如小米球但是不稳定或收费,如果自己有一台公网上的centos服务器,可以 ...
最新文章
- Log4j格式化符号
- 函数指针--全局函数指针与类的函数指针(二)
- 临时目录 Path.GetTempFileName()
- webapi+EF(增删改查)
- navicat 怎么调试存储过程_Mysql调试存储过程最简单的方法
- 屏下摄像头技术来了!OPPO FindX2有望率先搭载
- 【比赛】CCF BDCI新闻情感分类初赛A榜4/2735,复赛1%题解报告
- html5 电商模板,多用途电商HTML模板
- Excel2007版的常用功能(6):Excel数据透视表
- 搭建1078部标流媒体服务器
- 算法高级(45)-阿尔法狗到底有多厉害?
- 陈强教授《机器学习及R应用》课程 第十章作业
- 哈希表查找 的 平均长度
- 极路由通过SSH添加静态路由表之后无法跳转的问题
- SameSite cookie 理解与设置
- K660E I7 D4 clover 引导黑苹果完美驱动
- 骚扰电话不胜其烦 防止隐私泄露只能靠网友不满?
- 单片机学习笔记——微机基础知识
- hiho 挑战赛16 A.王胖浩与三角形
- 使用 BULL 转换Java Bean