多语言展示
当前在线:504今日阅读:193今日分享:47

树莓派ngrok内网渗透(无公网IP)

没有公网IP(固定IP)的树或其他地方访问(SSH)到家里的PI是很困难的事。方法大致有【花生壳动态域名解析】【ngrok搭建服务器反向代理】【frp搭建服务器】。本文只讨论ngrok,这样做的目的也方便了网站开发人员随时随地的调试和测试网站,如果你是一个树莓派极客,可以尝试一下, 毕竟公网IP是很少的。
工具/原料
1

一个树莓派(我用的是树莓派3B,其他1,2代理论上可以,没测试)

2

一个VPS(虚拟专用服务器)

3

一台电脑(windows)

方法/步骤
1

购买香港或国外的vps,我用的是openvzcc的服务器,包年费用大概70元左右,当然性能网速好的较贵点。有了VPS相当于你在境外有了自己的服务器(一台运行着linux的电脑), 也就是有了自己独立的一个固定IP。你可以直接ssh此IP, 以便于管理自己的服务器。

2

有了自己的VPS后要做的事就是ssh上这台server(不懂请自行度之)。

3

下面要做的事情是在vps上编译服务端(运行在vps上)和客户端(运行在树莓派上)。需要说明的是我这里的vps装的是centos 32位的系统。需要准备的环境为:git安装 , go语言安装, ngrok源码下载和配置

4

git安装:      下载:                   wget http://mirrors.ustc.edu.cn/kernel.org/software/scm/git/git-2.9.3.tar.gz      解压:                   tar zxvf git-2.9.3.tar.gz      编译:                  cd git-2.9.3                 ./configure --prefix=/usr/local/git-2.9.3                 make                 make install      移除低版本git:                                  yum remove git*                 ln -s /usr/local/git-2.9.3/bin/* /usr/bin/      检查git版本:                 git --version

5

go语言安装:       安装必要包:                     yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ build-essential  mercurial       下载配置go源码:                      wget http://www.golangtc.com/static/go/1.7rc6/go1.7rc6.linux-386.tar.gz                      tar -zxvf go1.7.6.linux-386.tar.gz                      mv go /usr/local/                      ln -s /usr/local/go/bin/* /usr/bin/        检查go版本:                      go env

6

ngrok源码下载和配置:           下载 :                    wget https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/ngrok/ngrok.zip               unzip ngrok.zip               export GOPATH=~/ngrok/               export NGROK_DOMAIN='tangwei.vicp.net'               cd ~/ngrok           生成证书,Ngrok会使用此证书加密通讯:                 openssl genrsa -out base.key 2048               openssl req -new -x509 -nodes -key base.key -days 10000 -subj '/CN=$NGROK_DOMAIN' -out rootCA.pem               openssl genrsa -out server.key 2048               openssl req -new -key server.key -subj '/CN=$NGROK_DOMAIN' -out server.csr               openssl x509 -req -in server.csr -CA rootCA.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt            将证书文件复制到指定位置:                     cp rootCA.pem assets/client/tls/ngrokroot.crt -i                cp server.crt assets/server/tls/snakeoil.crt -i                cp server.key assets/server/tls/snakeoil.key -i

7

编译服务器端与客户端:       服务端(linux-x86-64)编译:                    export GOOS=linux                export GOARCH=386                make release-server       客户端编译:                       export GOOS=linux                export GOARCH=arm                make release-client

注意事项

这里测试时只编译了i386的服务器端和arm的客户端,实际上可以通过改变GOOS与GOARCH来获取各个平台的客户端与服务端,GOOS可以指定为windows、linux 、 freebsd 、darwin (Mac OS X 10.5 or 10.6) 和 nacl (Chrome 的Native Client 接口) ,GOARCH可以指定为amd64 (64-bit x86) 、386 (32-bit x86) 、 和arm (32-bit ARM)

推荐信息