美文网首页
ngrok 从编译到搭建内网穿透

ngrok 从编译到搭建内网穿透

作者: 青玉_f18c | 来源:发表于2022-01-12 11:18 被阅读0次

    背景

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

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

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

    ngrok源码地址

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

    1、安装golang

    • 网上几乎都是这种方法,但是不推荐,因为ngrok是六七年前就写好的东西,
    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`,或者使用以前的版本编译
    
    

    编译

    遇到的坑最多

    • 如果是用1.16版本的go编译ngrok ,有错误(TODO:待补充),我换成了1.15.15版本
    • 换成1.15.15后仍旧报错,出现缺包:code.google.com/p/log4go 找不到,即下载失败;
      主要是 code.google.com 网站已关闭导致的,有人把它 fork 到 github 上面了,发现了好几个,如
    https://github.com/alecthomas/log4go
    https://github.com/thinkboy/log4go
    

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

    • 这还没有完,还会报错,这个包缺失:github.com/inconshreveable/go-update/check,这是因为版本go-update的版本不对,编译时自动拉取的是最新的版本(最近的里面没有check), 所以需要进入到 src/github.com/inconshreveable/go-update路径下,把go-update的代码clone一份,切换到filemode分支,再回到ngrok主目录编译就行了

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

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

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

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

    相关文章

      网友评论

          本文标题:ngrok 从编译到搭建内网穿透

          本文链接:https://www.haomeiwen.com/subject/nnxwcrtx.html