在 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 设备上使用花生壳实现内网穿透。

相关推荐
Wang's Blog6 小时前
Nestjs框架: 微服务事件驱动通信与超时处理机制优化基于Event-Based 通信及异常捕获实践
微服务·云原生·架构·nestjs
brzhang6 小时前
读懂 MiniMax Agent 的设计逻辑,然后我复刻了一个MiniMax Agent
前端·后端·架构
YXWik66 小时前
新版若依微服务增强swagger增强集成knife4j
微服务·云原生·架构
深思慎考6 小时前
微服务即时通讯系统(服务端)——文件存储模块全链路设计与实现(3)
linux·微服务·架构·c++项目·聊天系统
交换机路由器测试之路6 小时前
交换机路由器基础(二)-运营商网络架构和接入网
网络·架构
开发者如是说6 小时前
Compose 开发桌面程序的一些问题
前端·架构
●VON9 小时前
【成长纪实】三个月的鸿蒙成长之路:大学生从0开始的鸿蒙心得与体会
华为·架构·harmonyos·鸿蒙·鸿蒙系统·鸿蒙开发·成长纪实
冷雨夜中漫步10 小时前
高级系统架构师笔记——系统质量属性与架构评估(1)软件系统质量属性
笔记·架构·系统架构
森G11 小时前
四、Linux设备驱动介绍
linux·arm开发·ubuntu