安卓端搭建网站+自建内网穿透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