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

相关推荐
老友@21 小时前
深入 Spring AI:架构与应用
人工智能·spring·ai·架构
CNRio1 天前
生成式AI技术栈全解析:从模型架构到落地工程化
人工智能·架构
AutoMQ1 天前
AutoMQ GitHub 突破 8,000 Star!
架构
袅沫1 天前
微服务如何进行远程调用其他服务
java·微服务·架构
明月清了个风1 天前
工作笔记-----EEPROM偶发性读取错误
arm开发·笔记·单片机·嵌入式硬件
也许是_1 天前
架构的取舍之道:在微服务的“混乱”中建立秩序
微服务·云原生·架构
大侠课堂1 天前
单片机经典面试题50道
arm开发·单片机·嵌入式硬件·mongodb
大牙Adela1 天前
在Mac上通过Multipass虚拟机中的Ubuntu系统使用Graphviz工具
c语言·qt·ubuntu·macos·multipass·graphviz
码上上班1 天前
ubuntu 安装ragflow
linux·运维·ubuntu
HIT_Weston1 天前
38、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(一)
linux·前端·ubuntu