ngrok实战踩坑

使用ngrok的场景:内网服务发布到外网,服务的内网穿透。
具体如何操作的网上很多文章,这里就不赘述。
可以参考:
一分钟实现内网穿透(ngrok服务器搭建)
自搭Ngrok实现树莓派内网穿透

整个流程

  1. 编译ngrok。会拿到的服务端和客户端。
  2. 将服务器端部署到一台拥有外网固定IP地址的服务器。域名映射到这台服务器。
  3. 将客户端部署到内网发布服务的服务器,启动,将客户端启动注册到ngrok的服务端。
  4. 其他。
    a、内网如果直接访问,则配置内网的DNS解析到内网服务器。
    b、如果不同的服务器使用了不同的端口,但需要直接输入域名访问的情况,可以在内网部署的服务器上再加一个nginx,监控80端口,转发到指定的服务端口。
    c、ngrok没有自带服务发现,所以服务端要是重启了,所有链接的客户端都要重新链接一次。

有坑的地方

编译安装的文件是哪些

首先找到安装的目录,我的是/usr/local/src/ngrok/
那么编译完的可执行文件就在/usr/local/src/ngrok/bin

证书在:
/usr/local/src/ngrok/assets/server/tls
/usr/local/src/ngrok/assets/client/tls
可执行文件+证书,拷贝到一起,就是一套完成的客户端和服务端了。

后台运行

ngrok 用 & 不能后台运行
这就要使用screen这个命令
首先安装screen
apt-get install screen
之后运行
screen -S 任意名字(例如:keepngork)
然后运行ngrok启动命令
最后按快捷键
ctrl+A+D
既可以保持ngrok后台运行
http://wdxtub.com/2016/04/16/thin-csapp-1/

ngrok客户端无法注册到服务端

服务端可以查看到客户端的链接日志,但是auth提示有问题,是因为在编译的时候带了认证则客户端机器,客户端执行文件同级目录,把生成的几个认证文件拷贝过去即可。

  • ngrok
  • ngrok.cfg(客户端配置)
  • ngrokroot.crt
  • snakeoilca.crtt

域名关系处理

ngrok的服务端,启动带的域名如果为

SCREEN -S keepngrok
./ngrokd -domain=domain.com.cn

域名映射到外网固定IP的配置就为:

@.domain.com.cn

就是说只要没有特别说明,所有可能的domain.com.cn都访问这台服务器。

那么,客户端的访问地址就:abc.domain.com.c
某客户端的配置:

server_addr: "domain.com.cn:4443"
trust_host_root_certs: false
tunnels:
  http:
    subdomain: "abc"
    proto:
      http: "9003"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

windanchaos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值