在 Ubuntu ARM 架构系统中安装并使用花生壳实现内网穿透

在 Ubuntu ARM 架构系统中安装并使用花生壳实现内网穿透的步骤如下,适用于树莓派、香橙派等 ARM 设备:

一、准备工作

  1. 确保 Ubuntu 系统已联网(建议使用 ping baidu.com 测试网络连通性)。
  2. 注册花生壳账号(官网注册),后续需登录使用。

二、安装花生壳客户端

花生壳提供了 ARM 架构的 Linux 客户端,可通过官方脚本或手动下载安装:

方法 1:通过官方一键安装脚本(推荐)
  1. 确认系统架构

  2. 打开终端,执行以下命令下载并运行安装脚本:

    bash 复制代码
    wget "https://dl.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb" -O phddns_5.1.0_rapi_aarch64.deb

(注:若链接失效,可到 花生壳Linux版下载页 获取最新 ARM 版本的 deb 包链接)

  1. 安装 deb 包:

    bash 复制代码
    sudo dpkg -i phddns_5.1.0_rapi_aarch64.deb

    若提示依赖错误,执行以下命令修复:

    bash 复制代码
    sudo apt-get install -f
方法 2:手动下载安装(备用)
  1. 访问花生壳官网下载页面,选择 Linux 版本ARM 架构 的 deb 包,通过 FTP 或 U 盘传输到 Ubuntu 设备。
  2. 进入文件所在目录,执行安装命令(同上)。
安装完成

三、初始化花生壳并登录

  1. 安装完成后,启动花生壳服务:

    bash 复制代码
    sudo phddns start
  2. 初始化并获取登录信息:

    bash 复制代码
    sudo phddns status

    执行后会显示类似以下信息,记录 SN 码默认密码(首次登录用):

    复制代码
    花生壳服务运行中
    SN: xxxxxxxx
    远程管理地址: http://b.oray.com
    账号: 默认使用SN码登录,密码: admin
  3. 登录花生壳管理平台:

    • 在浏览器中访问 http://b.oray.com,使用上述 SN 码和默认密码登录。
    • 首次登录需修改默认密码,并绑定花生壳账号(若未绑定)。

四、配置内网穿透规则


  1. 登录后,在管理界面点击 "添加映射",根据需求配置穿透规则:

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

五、开机自启

1、先确认花生壳能否手动正常启动

这是关键前提!如果手动启动都失败,自启必然失败:

  1. 先停止所有残留进程:

    bash 复制代码
    sudo phddns stop
    sudo pkill -f phddns  # 强制结束可能的残留进程
  2. 手动启动并观察输出:

    bash 复制代码
    sudo phddns start
    • 若提示"启动成功",再用 sudo phddns status 确认服务是否运行(显示"运行中")。
    • 若启动失败,记录错误提示(如"权限不足""文件缺失"等),优先解决手动启动问题(参考之前的端口冲突、架构不匹配排查)。
2、修改服务配置,解决频繁重启问题

若手动启动正常,但自启时频繁退出,说明systemd的启动条件或服务类型配置不当:

  1. 编辑服务文件:

    bash 复制代码
    sudo nano /etc/systemd/system/phddns.service
  2. 替换为以下配置(优化启动类型和依赖):

    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误判服务未启动),同时延长重启间隔。
  3. 保存退出,重新加载配置:

    bash 复制代码
    sudo systemctl daemon-reload
3、重置启动限制并测试
  1. 清除之前的失败记录:

    bash 复制代码
    sudo systemctl reset-failed phddns.service
  2. 手动启动服务并检查状态:

    bash 复制代码
    sudo systemctl start phddns.service
    sudo systemctl status phddns.service
    • 若显示 active (running),保持服务运行5分钟以上,确认不会自动退出(排除服务自身崩溃问题)。
4、验证自启(关键步骤)
  1. 若手动运行稳定,重启系统测试:

    bash 复制代码
    sudo reboot
  2. 重启后立即查看状态(观察启动过程):

    bash 复制代码
    sudo 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

七、注意事项

  1. 若穿透失败,检查:

    • 内网服务是否正常运行(如 telnet 内网IP 内网端口 测试)。
    • 路由器是否开启了对应端口的转发(部分场景可能需要)。
    • 防火墙是否放行端口(如 sudo ufw allow 端口号)。
  2. 免费版花生壳有流量和映射数量限制,如需稳定使用,可考虑付费套餐。

  3. 若系统为 ARM64 架构(如 Ubuntu 20.04 ARM64),需下载对应架构的 deb 包(官网标注"arm64")。

通过以上步骤,即可在 Ubuntu ARM 设备上使用花生壳实现内网穿透。

相关推荐
子兮曰8 分钟前
后端字段又改了?我撸了一个 BFF 数据适配器,从此再也不怕接口“屎山”!
前端·javascript·架构
卓卓不是桌桌2 小时前
如何优雅地处理 iframe 跨域通信?这是我的开源方案
javascript·架构
Qlly3 小时前
DDD 架构为什么适合 MCP Server 开发?
人工智能·后端·架构
用户881586910911 天前
AI Agent 协作系统架构设计与实践
架构
鹏北海1 天前
Qiankun 微前端实战踩坑历程
前端·架构
货拉拉技术1 天前
货拉拉海豚平台-大模型推理加速工程化实践
人工智能·后端·架构
元Y亨H1 天前
华硕主机重装 Ubuntu 系统完全指南
ubuntu
RoyLin1 天前
libkrun 深度解析:架构设计、模块实现与 Windows WHPX 后端
架构
CoovallyAIHub2 天前
实时视觉AI智能体框架来了!Vision Agents 狂揽7K Star,延迟低至30ms,YOLO+Gemini实时联动!
算法·架构·github
RoyLin2 天前
领域驱动设计:回归本质的工程实践
架构