如何在raspbian上通过Ngrok实现tcp内网穿透

文章目录

  • 引言
  • 1 注册
  • 2 开通隧道
  • 3 下载客户端
  • 4 编写启动脚本
  • 5 测试可执行代码
  • 6 设置开机启动
  • END

引言

本文将介绍如何在树莓派上使用Sunny-Ngrok提供的免费的Ngrok服务器进行tcp内网穿透,实现内网tcp端口开放。

1 注册

  1. 打开浏览器输入Sunny-Ngrok的网址https://www.ngrok.cc
    如何在raspbian上通过Ngrok实现tcp内网穿透_第1张图片
  2. 点击注册
    如何在raspbian上通过Ngrok实现tcp内网穿透_第2张图片
  3. 填写信息完成注册
    如何在raspbian上通过Ngrok实现tcp内网穿透_第3张图片

2 开通隧道

  1. 注册成功后点击隧道管理开通隧道
    如何在raspbian上通过Ngrok实现tcp内网穿透_第4张图片
  2. 选择美国Ngrok免费服务器
    如何在raspbian上通过Ngrok实现tcp内网穿透_第5张图片
  3. 确定
    如何在raspbian上通过Ngrok实现tcp内网穿透_第6张图片
  4. 填写信息后点击确定添加
    如何在raspbian上通过Ngrok实现tcp内网穿透_第7张图片
  5. 完成后可以在隧道管理里看到刚刚添加的隧道了
    如何在raspbian上通过Ngrok实现tcp内网穿透_第8张图片

3 下载客户端

  1. 点击下载客户端
    如何在raspbian上通过Ngrok实现tcp内网穿透_第9张图片
  2. 点击Linux ARM版本即可下载
    如何在raspbian上通过Ngrok实现tcp内网穿透_第10张图片
  3. 下载完成点击左下角弹出一个小窗口,点它的小尖尖,再点击在文件夹中显示
    如何在raspbian上通过Ngrok实现tcp内网穿透_第11张图片
    打开后就是这样的
    如何在raspbian上通过Ngrok实现tcp内网穿透_第12张图片
  4. 右键点击,选择提取到此处
    如何在raspbian上通过Ngrok实现tcp内网穿透_第13张图片
  5. 完成后,即可删除该压缩包。
    选中后按Del, 然后点击
    如何在raspbian上通过Ngrok实现tcp内网穿透_第14张图片
  6. 点击linux_arm文件夹看看有没有sunny文件
  7. Ctrl+Alt+T打开终端
    已经在pi目录下了,所以在终端输入 cd Downloads/linux_arm 即可进入/home/pi/Downloads/linux_arm目录
    如何在raspbian上通过Ngrok实现tcp内网穿透_第15张图片
    输入ls,存在sunny文件
    如何在raspbian上通过Ngrok实现tcp内网穿透_第16张图片
  8. sunnuy移动到 /usr/local/bin目录下
    输入 mv sunny /usr/local/bin/sunny
    在这里插入图片描述
    进入 /usr/local/bin看看是否移动成功
    输入 cd /usr/local/bin ls
    在这里插入图片描述
  9. 给予sunny可执行权限
    输入 sudo chmod +x /usr/local/bin/sunny
    在这里插入图片描述

4 编写启动脚本

  1. 输入 sudo nano /etc/init.d/sunny
    如何在raspbian上通过Ngrok实现tcp内网穿透_第17张图片
  2. 在文件里输入以下内容,其中隧道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

如何在raspbian上通过Ngrok实现tcp内网穿透_第18张图片
3. 保存内容:按 Ctr+O Enter
如何在raspbian上通过Ngrok实现tcp内网穿透_第19张图片
然后按 Ctr+X退出。

5 测试可执行代码

  1. 启动
    分别输入以下三条命令
    sudo chmod 755 /etc/init.d/sunny
    sudo /etc/init.d/sunny start
    sudo /etc/init.d/sunny start #启动
    在这里插入图片描述
    启动成功了
    去浏览的隧道管理里看,有个踢下线哈哈哈
    如何在raspbian上通过Ngrok实现tcp内网穿透_第20张图片
    在这里插入图片描述

  2. 停止
    输入 sudo /etc/init.d/sunny stop
    在这里插入图片描述
    可以再去去浏览的隧道管理里看看状态,是处于隧道不在线

  3. 重启
    输入 sudo /etc/init.d/sunny restart
    如何在raspbian上通过Ngrok实现tcp内网穿透_第21张图片

6 设置开机启动

分别输入两条以下命令
cd /etc/init.d
sudo update-rc.d sunny defaults 90
在这里插入图片描述
如果要取消开机启动输入
sudo update-rc.d -f sunny remove

END

你可能感兴趣的:(Linux,linux,服务器,debian)