安卓端搭建网站+自建内网穿透ngrok

①.准备工作:

一台云服务器,

一个域名(二级域名也可以),并且域名正确解析到云服务器,如果没有,请移步www.ngrok.cc
一台安卓4.4.4以上的手机

②.环境建设,先ssh连上你的云服务器

1、安装gcc

yum install gcc

2.安装git

yum install git

3.安装GO语言

到网站https://golang.org/dl/查找最新的版本链接,我的服务器是centos7.4 x64,当前最新版本是:https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz

下载:

wget https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz

解压安装:

tar -C /usr/local/ -zxvf go1.10.linux-amd64.tar.gz

添加环境变量,编辑:

vi /etc/profile

在最后添加:

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

ESC退出:wq保存离开

使环境变量生效:

source /etc/profile

检查是否安装成功:

go version

输出:go version go1.10 linux/amd64表示安装成功

③搭建Ngrok服务

1.下载ngrok源码

cd /usr/local/src
git clone https://github.com/inconshreveable/ngrok.git

2.生成证书

在自生成证书时需要一个解析到服务器上的主域名(二级域名也可以,本人已经验证过),现在以”XXXXX.com”为例:

cd ngrok

#这里修改为自己的域名
export NGROK_DOMAIN="XXXXX.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

将新生成的证书,替换掉assets/client/tls下的证书

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key

 3.编译生成ngrokd(服务端)

#这里是交叉编译,linux系统GOOS=linux,64位系统GOARCH=amd64,32位系统GOARCH=386
#当前系统可用go env查看
GOOS=linux GOARCH=amd64
make release-server

编译成功后在当前目录的bin目录下可找到ngrokd文件

4.启动服务端

cd /usr/local/src/ngrok
./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="XXXXX.com"  -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8888"
#参数说明:
#-domain 访问ngrok是所设置的服务地址生成证书时那个
#-httpAddr http协议端口 (你的服务器没有80端口的话可以改成其他的)
#-httpsAddr https协议端口 (可配置https证书)(你的服务器没有443端口的话可以改成其他的)
#-tunnelAddr 通道端口

出现下面信息,启动成功

[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:80
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:443
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:8888
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds

先Ctrl + C 结束掉

测试成功的话,可以让服务后台运行

cd /usr/local/src/ngrok setsid ./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="XXXXX.com"  -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8888"

④手机安装Termux终端 以及  KSWEB

百度云下载:https://pan.baidu.com/s/1f-uFYibHtOmUVo1IxNRumw 密码: kpur

本地下载:https://cangshui.net/-down/-mytargz/KSWEBtermux.zip

1.打开KSWEB

我觉得这个软件是真的简单。。。。。图形化界面很容易的,看不懂的话也不可能看到这一步

不过需要注意这个玩意nginx似乎有问题,总是无法启动,所以我用apache

要在工具选项卡里开启mysql,第一次登陆直接用root,密码不用填,直接登陆

我这里的前端web页面端口是192.168.43.1:8000

不知道自己手机内网ip的话就开个热点,电脑连上,cmd输入ipconfig

 

2.Termux建立python环境

打开软件,键入:

pkg install python
y

3.下载ngrok的python版本

github下载:https://github.com/hauntek/python-ngrok

打开python-ngrok.py文件,(建议电脑编辑,手机不方便),修改成图示这部分

编辑好后保存放到手机,输入命令启动客户端连接

python2.7 /storage/emulated/0/python-ngrok.py
#这个路径是手机内部存储根目录路径

出现这个界面就是成功了

然后,我们输入自己解析的域名,出现下列画面即是成功

文章来源:

Author:沧水
link:https://cangshui.net/?p=1943