内网穿透
内网穿透就是将只拥有互联网的电脑映射到公网上面,功能类似于花生壳。
映射需要:一个公网服务器,一个能够解析到这台服务器的域名.
安装git,go环境
- 安装git,gcc环境
yum install gcc -y
yum install git -y
- 安装go环境
下载go(我的当前目录是/data/work)
$wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz
$tar -xvf go1.10.1.linux-amd64.tar.gz
设置环境变量
$vim /etc/profile
export GOROOT=/data/work/go
export GOPATH=/data/work/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile
- 检测是否安装成功
git --version //( >= 1.7 )
go version
安装ngrok
在服务器上搭建Ngrok服务
用git下载代码
git clone https://github.com/inconshreveable/ngrok.git
接下来生成证书,abc.com这里修改为自己的域名
cd ngrok
export NGROK_DOMAIN="abc.com"
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
将新生成的证书替换,执行下面命令后 “y” 回车 一行一行执行代码
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
编译生成ngrokd(服务端)
GOOS=linux GOARCH=amd64 make release-server
编译生成ngrok(客户端)
GOOS=windows GOARCH=amd64 make release-client
生成在~/ngrok/bin/windows_amd64/目录中
配置完成后启动服务端
sudo ./bin/ngrokd -domain="abc.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083" &
在windows运行客户端
新建配置文件:ngrok.cfg
server_addr: "abc.com:8083"
trust_host_root_certs: false
tunnels:
http:
subdomain: "www"
proto:
http: "80"
https:
subdomain: "www"
proto:
https: "443"
ssh:
remote_port: 2222
proto:
tcp: "22"
mstsc:
remote_port: 52222
proto:
tcp: "192.168.0.107:3389"
以上 8083 80 443 与 远程开启的端口一致,
新建启动脚本:start.bat
输入
ngrok -config=ngrok.cfg start http https ssh mstsc
直接双击运行