在 Ubuntu ARM 架构系统中安装并使用花生壳实现内网穿透的步骤如下,适用于树莓派、香橙派等 ARM 设备:
一、准备工作
- 确保 Ubuntu 系统已联网(建议使用
ping baidu.com测试网络连通性)。 - 注册花生壳账号(官网注册),后续需登录使用。
二、安装花生壳客户端
花生壳提供了 ARM 架构的 Linux 客户端,可通过官方脚本或手动下载安装:
方法 1:通过官方一键安装脚本(推荐)
-
确认系统架构

-
打开终端,执行以下命令下载并运行安装脚本:
bashwget "https://dl.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb" -O phddns_5.1.0_rapi_aarch64.deb

(注:若链接失效,可到 花生壳Linux版下载页 获取最新 ARM 版本的 deb 包链接)
-
安装 deb 包:
bashsudo dpkg -i phddns_5.1.0_rapi_aarch64.deb若提示依赖错误,执行以下命令修复:
bashsudo apt-get install -f
方法 2:手动下载安装(备用)
- 访问花生壳官网下载页面,选择 Linux 版本 → ARM 架构 的 deb 包,通过 FTP 或 U 盘传输到 Ubuntu 设备。
- 进入文件所在目录,执行安装命令(同上)。
安装完成

三、初始化花生壳并登录
-
安装完成后,启动花生壳服务:
bashsudo phddns start -
初始化并获取登录信息:
bashsudo phddns status执行后会显示类似以下信息,记录 SN 码 和 默认密码(首次登录用):
花生壳服务运行中 SN: xxxxxxxx 远程管理地址: http://b.oray.com 账号: 默认使用SN码登录,密码: admin -
登录花生壳管理平台:
- 在浏览器中访问
http://b.oray.com,使用上述 SN 码和默认密码登录。 - 首次登录需修改默认密码,并绑定花生壳账号(若未绑定)。

- 在浏览器中访问
四、配置内网穿透规则


-
登录后,在管理界面点击 "添加映射",根据需求配置穿透规则:
- 应用类型:选择需穿透的服务(如 HTTP、SSH、自定义端口等)。
- 映射名称:自定义名称(如"树莓派SSH")。
- 内网主机 :填写 Ubuntu 设备的内网 IP(可通过
ifconfig查看,如192.168.1.100)。 - 内网端口:需穿透的服务端口(如 SSH 默认 22,Web 服务默认 80)。
- 外网端口:花生壳分配的端口(免费版为随机端口,付费版可固定)。
-
点击 "确认添加" ,映射规则生效后,即可通过花生壳提供的 "外网访问地址" 访问内网服务。

五、开机自启
1、先确认花生壳能否手动正常启动
这是关键前提!如果手动启动都失败,自启必然失败:
-
先停止所有残留进程:
bashsudo phddns stop sudo pkill -f phddns # 强制结束可能的残留进程 -
手动启动并观察输出:
bashsudo phddns start- 若提示"启动成功",再用
sudo phddns status确认服务是否运行(显示"运行中")。 - 若启动失败,记录错误提示(如"权限不足""文件缺失"等),优先解决手动启动问题(参考之前的端口冲突、架构不匹配排查)。
- 若提示"启动成功",再用
2、修改服务配置,解决频繁重启问题
若手动启动正常,但自启时频繁退出,说明systemd的启动条件或服务类型配置不当:
-
编辑服务文件:
bashsudo nano /etc/systemd/system/phddns.service -
替换为以下配置(优化启动类型和依赖):
ini[Unit] Description=Oray Peanut Hull (phddns) Service After=network-online.target # 等待网络完全就绪 Wants=network-online.target # 明确依赖网络服务 [Service] Type=simple # 改用simple类型(部分程序不支持forking) ExecStart=/usr/bin/phddns start --no-daemon # 强制前台运行(适配simple类型) ExecStop=/usr/bin/phddns stop Restart=on-failure # 仅在失败时重启,而非always RestartSec=10 # 重启间隔延长到10秒,避免触发限制 TimeoutStartSec=30 # 启动超时设为30秒 [Install] WantedBy=multi-user.target- 核心修改 :
Type=simple配合--no-daemon让花生壳在前台运行(避免systemd误判服务未启动),同时延长重启间隔。
- 核心修改 :
-
保存退出,重新加载配置:
bashsudo systemctl daemon-reload
3、重置启动限制并测试
-
清除之前的失败记录:
bashsudo systemctl reset-failed phddns.service -
手动启动服务并检查状态:
bashsudo systemctl start phddns.service sudo systemctl status phddns.service- 若显示
active (running),保持服务运行5分钟以上,确认不会自动退出(排除服务自身崩溃问题)。
- 若显示
4、验证自启(关键步骤)
-
若手动运行稳定,重启系统测试:
bashsudo reboot -
重启后立即查看状态(观察启动过程):
bashsudo journalctl -u phddns.service -f # 实时查看服务日志- 若日志显示"启动成功"且状态为
active,则自启生效。 - 若仍失败,日志会显示具体退出原因(如"网络超时""权限拒绝"),针对性解决:
- 网络超时:在
ExecStart前添加延迟,如ExecStartPre=/bin/sleep 20(延迟20秒启动)。 - 权限问题:在
[Service]段添加User=root(确保以root权限运行)。
- 网络超时:在
- 若日志显示"启动成功"且状态为
通过以上步骤,可解决服务频繁退出导致的自启失败问题。核心是确保花生壳能稳定运行,再通过调整启动时机和服务类型适配systemd的管理逻辑。
六、常用操作命令
- 启动服务:
sudo phddns start - 停止服务:
sudo phddns stop - 重启服务:
sudo phddns restart - 查看状态(含 SN 和登录信息):
sudo phddns status - 查看日志:
tail -f /var/log/phddns.log
七、注意事项
-
若穿透失败,检查:
- 内网服务是否正常运行(如
telnet 内网IP 内网端口测试)。 - 路由器是否开启了对应端口的转发(部分场景可能需要)。
- 防火墙是否放行端口(如
sudo ufw allow 端口号)。
- 内网服务是否正常运行(如
-
免费版花生壳有流量和映射数量限制,如需稳定使用,可考虑付费套餐。
-
若系统为 ARM64 架构(如 Ubuntu 20.04 ARM64),需下载对应架构的 deb 包(官网标注"arm64")。
通过以上步骤,即可在 Ubuntu ARM 设备上使用花生壳实现内网穿透。