内网穿透 dog-tunnel 的编译和简单使用

前言

可以参考 github 上的开源,地址为:vzex 的 dog-tunnel,但是几乎可以说没啥文档就是了,仔细从头看还是能看明白的。

本文编译的是 dog-tunnel 的 updVersion。

为了不增加垃圾文件或者生成了什么删不掉的东西,所以在 Docker 中跑了一个 CentOS 的容器来编译。

需要的一些东西

gcc 环境

make

go 环境

安装环境

由于是容器,很多都是没有的,所以先搞一下,如果是在宿主机弄,正常情况下都是有的,可直接从 GO 环境开始弄。

1
2
yum -y update
yum -y install wget git vim

首先,先把 GO 环境搞起来,会的就直接搞;不会的,按照下面的代码拷贝就行了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd /home/env
wget https://studygolang.com/dl/golang/go1.13.5.linux-amd64.tar.gz
tar zxvf go1.13.5.linux-amd64.tar.gz
mkdir /home/env/goworkspace

vim /etc/bashrc
# 跳到最后一行(Shift + g),然后增加三行配置,然后保存退出(:wq),最终结果如下图这样
export GOROOT=/home/env/go
export GOPATH=/home/env/goworkspace
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
# 执行下面的命令使配置生效
source /etc/bashrc

# 执行下面的命令,如果显示 go 的版本,则说明 go 环境搞定
go version

然后安装 gcc 和 make

1
yum -y install gcc gcc-c++ kernel-devel make

编译

获取编译时需要的依赖

1
2
3
4
5
6
go get github.com/go-sql-driver/mysql
go get github.com/klauspost/reedsolomon
go get github.com/cznic/zappy
go get -u -d github.com/vzex/dog-tunnel
cd $GOPATH/src/github.com/vzex/dog-tunnel/
git checkout master

编译,获得各种环境的执行文件压缩包

1
2
# 1.34 是版本,从代码提交来看,当下最新的版本应该是这个
./release.sh 1.34

编译结果,图中画框的便是各个环境的执行文件压缩包了。具体使用参考: 源项目上的 HowToUse.txt