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

发布于 / 系统运维 / 16 条评论

①.准备工作:

一台云服务器,

一个域名(二级域名也可以),并且域名正确解析到云服务器,如果没有,请移步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://apkpure.com/cn/ksweb-web-developer-kit/ru.kslabs.ksweb

还有

https://apkpure.com/cn/termux/com.termux

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
#这个路径是手机内部存储根目录路径

出现这个界面就是成功了

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

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
转载原创文章请注明,转载自: 沧水的博客 » 安卓端搭建网站+自建内网穿透ngrok
  1. VV

    joo

  2. sadsa

    Tunnel xx.com not found

  3. 小星

    我有一个问题,都有云服务器了,还要内网穿透干嘛⊙∀⊙?

    1. 沧水
      @小星 云服务器硬盘容量不够或该服务器商家有过硬盘数据损坏的先例,亦或是数据为了安全不想存在异地,等等问题就不一一说明了
      1. 小星
        @沧水 那...你用的哪家服务器啊?大佬
        1. 沧水
          @小星 早年是用的Gigs香港便宜机器,当年2刀一个月,这家有博客丢数据的风评,因此才写下这篇文章,现在这家已经不便宜了
          1. 小星
            @沧水 所以,现在,你已经自己搭了?
            1. 沧水
              @小星 所以我现在使用了更昂贵的服务器以保存数据
              1. 小星
                @沧水 大佬大佬,用免费空间(php环境的)也能搭吗?
                1. 沧水
                  @小星 php不是万能语言 所以不能
              2. 小星
                @沧水 还有,你是怎么过备案的......买几个月国内的云虚机?还是直接买国外域名?
                1. 沧水
                  @小星 我在腾讯买的域名和学生机
  4. 沧水

    嗯…..我怕麻烦

  5. 久鑫

    有没有视频教程

  6. 4534534

    asdasasfasfasfasfasfasfasfafh呵呵哈哈哈

  7. 千面妖

    😥 老哥,你这个是什么主题