引言
本文将介绍如何在树莓派上使用Sunny-Ngrok提供的免费的Ngrok服务器进行tcp内网穿透,实现内网tcp端口开放。
1 注册
- 打开浏览器输入Sunny-Ngrok的网址https://www.ngrok.cc
- 点击注册
- 填写信息完成注册
2 开通隧道
- 注册成功后点击隧道管理的开通隧道
- 选择美国Ngrok免费服务器
- 确定
- 填写信息后点击确定添加
- 完成后可以在隧道管理里看到刚刚添加的隧道了
3 下载客户端
- 点击下载客户端
- 点击Linux ARM版本即可下载
- 下载完成点击左下角弹出一个小窗口,点它的小尖尖,再点击在文件夹中显示
打开后就是这样的
- 右键点击,选择提取到此处
- 完成后,即可删除该压缩包。
选中后按Del
, 然后点击是。
- 点击linux_arm文件夹看看有没有sunny文件
Ctrl+Alt+T
打开终端
已经在pi目录下了,所以在终端输入cd Downloads/linux_arm
即可进入/home/pi/Downloads/linux_arm目录
输入ls
,存在sunny文件
- 将sunnuy移动到 /usr/local/bin目录下
输入mv sunny /usr/local/bin/sunny
进入 /usr/local/bin看看是否移动成功
输入cd /usr/local/bin
ls
- 给予sunny可执行权限
输入 sudo chmod +x /usr/local/bin/sunny
4 编写启动脚本
- 输入
sudo nano /etc/init.d/sunny
- 在文件里输入以下内容,其中隧道id替换成自己的隧道id
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: ngrok.cc
# Required-Start: $network $remote_fs $local_fs
# Required-Stop: $network $remote_fs $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: autostartup of ngrok for Linux
### END INIT INFO
NAME=sunny
DAEMON=/usr/local/bin/$NAME
PIDFILE=/var/run/$NAME.pid
[ -x "$DAEMON" ] || exit 0
case "$1" in
start)
if [ -f $PIDFILE ]; then
echo "$NAME already running..."
echo -e "\033[1;35mStart Fail\033[0m"
else
echo "Starting $NAME..."
start-stop-daemon -S -p $PIDFILE -m -b -o -q -x $DAEMON -- clientid 隧道id || return 2
echo -e "\033[1;32mStart Success\033[0m"
fi
;;
stop)
echo "Stoping $NAME..."
start-stop-daemon -K -p $PIDFILE -s TERM -o -q || return 2
rm -rf $PIDFILE
echo -e "\033[1;32mStop Success\033[0m"
;;
restart)
$0 stop && sleep 2 && $0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
3. 保存内容:按 Ctr+O
Enter
然后按 Ctr+X
退出。
5 测试可执行代码
-
启动
分别输入以下三条命令
sudo chmod 755 /etc/init.d/sunny
sudo /etc/init.d/sunny start
sudo /etc/init.d/sunny start
#启动
启动成功了
去浏览的隧道管理里看,有个踢下线哈哈哈
-
停止
输入sudo /etc/init.d/sunny stop
可以再去去浏览的隧道管理里看看状态,是处于隧道不在线 -
重启
输入sudo /etc/init.d/sunny restart
6 设置开机启动
分别输入两条以下命令
cd /etc/init.d
sudo update-rc.d sunny defaults 90
如果要取消开机启动输入
sudo update-rc.d -f sunny remove