一、内网穿透技术(Ngrok)
1. 环境准备与安装
- 查看架构:
树莓派一般为 aarch64 (ARM64)uname -a - 创建目录:
mkdir ~/ngrok && cd ~/ngrok - 下载:
wget https://bin.equinox.io/c/bNyj1mQV4c/ngrok-v3-stable-linux-arm64.tgz - 解压:
tar xvzf ngrok-v3-stable-linux-arm64.tgz - 添加 Token(官网注册获取):
./ngrok config add-authtoken 你的token
2. 测试 HTTP 服务
- 映射 80 端口:
./ngrok http 80 - 会生成公网 HTTPS 地址:
xxx.ngrok-free.app - 管理面板:
http://127.0.0.1:4040
3. 启动网页服务器(Python)
- 创建目录:
mkdir ~/acheweb && cd ~/acheweb - 启动服务(绑定所有网卡,支持局域网访问):
python3 -m http.server 8000 --bind 0.0.0.0 - 本地访问:
http://树莓派IP:8000
4. 公网访问网页
- 新开终端映射 8000 端口:
./ngrok http 8000 - 手机用流量访问生成的 HTTPS 地址即可
- 免费版会显示安全提示页
5. 开机自启(systemd)
- 创建服务文件:
sudo vim /etc/systemd/system/ngrok.service - 服务内容示例:
[Unit] Description=Ngrok After=network.target [Service] ExecStart=/home/pi/ngrok/ngrok start --all WorkingDirectory=/home/pi/ngrok Restart=always User=pi [Install] WantedBy=multi-user.target - 启用并启动:
sudo systemctl daemon-reload sudo systemctl enable --now ngrok.service - 优化:可在
~/.config/ngrok/ngrok.yml配置固定隧道
二、知识小结
| 主题 | 核心内容 | 关键操作步骤 | 技术要点 |
|---|---|---|---|
| 内网穿透 | 本地服务暴露到公网 | 下载对应 ARM64 版 Ngrok | 系统架构必须匹配 |
| Ngrok 配置 | 认证与端口映射 | 配置 authtoken、映射端口 | Token 从官网获取 |
| 服务部署 | 网页服务+穿透 | Python 启动 HTTP 服务器 | --bind 0.0.0.0 允许外网访问 |
| 自动化运维 | 开机自启穿透 | 编写 systemd 服务 | 重启策略、工作目录 |
| 效果验证 | 公网访问测试 | 手机流量访问验证 | 免费版带提示页 |