ngrok 从编译到搭建内网穿透

2022-01-12  本文已影响0人  青玉_f18c

背景

我为什么要写这个文档,因为遇到的坑太多了。一方面算是纪念一下,另一方面给同样想做内网穿透的小伙伴,贡献一点微薄之力。开干:

首先要有一台有公网ip的机器

我用的是腾讯云的轻量型应用服务器。

ngrok源码地址

https://github.com/inconshreveable/ngrok/tree/master

1、安装golang

centos: yum install golang -y
ubuntu:apt-get install golang-go
# 去官网下载匹配的压缩包:https://go.dev/dl/
# 以1.15.15为例,我的x86_64架构,linux系统
# 1. 下载
wget https://go.dev/dl/go1.15.15.linux-amd64.tar.gz
# 2. 解压
tar -xvf go1.15.15.linux-amd64.tar.gz
# 3.配置环境变量, vi ~/.bashrc ,加入下面几行(加入刚才的解压目录在/opt)
export GOPATH=/opt/go
export GOROOT=/opt/go
export PATH=$GOROOT/bin:$PATH
# 4. 验证,出现版本号即可
go version
# 5. 坑点
使用1.15+版本的go编译,会报
rpc error: code = Unavailable desc = connection error: desc = "transport: authentication handshake failed: x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0"
是因为 go 1.15 版本开始[废弃 CommonName](https://golang.org/doc/go1.15#commonname),因此推荐使用 SAN 证书。 如果想兼容之前的方式,需要设置环境变量 GODEBUG 为 `x509ignoreCN=0`,或者使用以前的版本编译

编译

遇到的坑最多

https://github.com/alecthomas/log4go
https://github.com/thinkboy/log4go

因此,把项目中的 log "code.google.com/p/log4go" 替换改为 log "github.com/thinkboy/log4go" 即可!

至此,本题主遇到的所有问题才得以解决,顺利编译通过

至于剩下的安装过程,借用下别人的经验(以后再补充):https://zhuanlan.zhihu.com/p/149968878

PS:草草的记录一下,有空了再整理。

https://www.cnblogs.com/jackluo/p/13841286.html

上一篇下一篇

猜你喜欢

热点阅读