一 注册账号
https://www.ngrok.cc/login/register
登陆后在隧道管理内
点击立即购买
隧道协议:按实际选择
隧道名称:随意取个有代表性的名字
前置域名:随意,后续可以编辑为使用自定义域名,最好定义一个意义的名字
本地端口:随意
http验证用户名、密码: 选填,但是填完之后外网访问时需要此名称和密码
完事确认添加即可,之后点开隧道管理列表
可以看到隧道ID,展开可以看到服务器地址
隧道ID是在树莓派上启动时用的
服务器地址:用来将自己的域名重定向到此(CNAME记录),若没有自己的域名则不用关心此值
待服务启动好可以直接用上述界面中的赠送域名访问
二 安装客户端
在步骤一的图中有个客户端下载外链,也可以通过链接https://www.ngrok.cc/download.html直接进入下图的下载界面,选择ARM版,右键复制链接,在命令行 wget http://hls.ctopus.com/sunny/linux_arm.zip?v=2
之后会在当前目录下下载好一个.zip的文件 uzip 文件名 得到解压后文件
在 linux_arm 文件夹下建立一个ngrok.sh 的启动脚本内容为
cd /home/pi/linux_arm
./sunny clientid 隧道ID >/dev/null 2>&1 & netstat -an | grep 80
保存后 给脚本赋权 sudo chmod 777 ngrok.sh,之后运行脚本即可
ps -ef | grep 隧道ID,进程存在说明客户端启动成功
此时的工具监听的是本机的80端口,但是机器如果没有启动80端口,则实际无法通过域名访问到数据,可通过web容器开发80端口
三 安装nginx
安装前最好先更新下信息库 sudo apt-get update ,以防安装软件错误
1. 安装nginx
sudo apt-get install nginx
2. 启动nginx
sudo /etc/init.d/nginx start
安装后的nginx目录在 /etc/nginx
3. 检测80端口是否正常启动
netstat -an | grep 80
或者
ss -tnl | grep 80
查看80端口是否存在
完成!
若需将ssh服务穿透到外网需要有一台有公网IP的机器,然后参考另一篇博文 : 内网ssh免费穿透