应用台导航页
  • 主页
  • 博客
  • 知识库
  • 工作台
  • 集萃
  • 友链
  • 关于
我是如何搭建家庭服务器的

我是如何搭建家庭服务器的

技术
更新于 2026-06-17
— 3907 字
返回

为什么需要家庭服务器:我之前开发的web 应用都是部署在 vercel 上,长时间以来,十几个应用的用量都没有超过 vercel 的免费额度,但近两个月, 高校分布可视化平台 这个应用的访问量突增,用量已大幅超出免费额度。升级了 pro plan 之后,包含的每月 20刀 的默认额度也 cover 不住了,还产生了不少额外费用。

VPS 价格贵,配置低。通常优惠的都是 2C 2G,跑不了几个业务。而且往往只能申请一次。

  1. 用来做什么:主力业务肯定不行,目前用来部署 umami 做统计分析等。

所需硬件及配置

我购买的迷你主机配置为:J1900 8+256G 。虽然 CPU 性能很差,但足够大的内存能支撑我部署很多玩具应用了。我是在淘宝 科比特迷你电脑小主机 这家店买的,价格只需 387 元,再加上转接头也不到 400 元,让客服预装 ubuntu server 26 ,答复说 26 装不下,只能装 24 ,就很智障。

我的家庭服务器
我的家庭服务器

整个过程额外引入的硬件有:

  • 一根网线
  • 一台迷你主机
  • DP 转 HDMI 转接头(我购买的迷你主机没有 HDMI口,只有DP,而显示器又没有 DP 口,所以需要用到转接头)。

效果和试用体验

硬件功耗真很低,几乎感受不到什么发热量。

家庭服务器如何实现公网访问

ipv6 DDNS + ipv4 frp 。

使用 DDNS 动态解析域名到 IPv6 地址

虽然公网 ipv4 对于家庭宽带用户基本是不可指望的,但 ipv6 地址却是触手可及的,于是可以将域名解析到公网 ipv6 地址,用户最终使用 ipv6 访问服务。

根据我有限的经验,移动基本是默认开启ipv6的,电信似乎则不然。虽然 ipv6 可能会变,但可以定时自动根据 ipv6 地址更新域名解析。这个我几年前就写过 shell 脚本实现过,我最近才知道这种技术叫做 DDNS ,还了解到有一个叫 DDNS-GO 的工具可以很方便地配置实现这个功能,试了下果然 一分钟就配好了,比自己折腾脚本要方便多了。

无线路由器之前已经改成桥接模式,网关直接获取 ip 地址,基本不会变。

获取运营商光猫超级管理员密码

为了确保 ipv6 开启,可能需要获取运营商光猫的管理员密码,以进行一些配置,比如关闭一些防火墙项等。

当然可以直接联系售后说明需求,但如若不成功,就需要自己尝试获取了。我使用的移动光猫是 HG6145D 这个型号,在这里也把我的经验分享出来。

HG6145D 如何获取超级管理员密码

超管账号的获取我主要参考这篇了获取: https://www.zhihu.com/question/427364972/answer/2848107230?share_code=55SKDgYEOzdi&utm_psn=2050505866416223818

但还是有些出入,打开 telnet 还需要带上 key 这个参数

  1. 开启设备 telnet 连接:设备Telnet 默认是关闭的,需要用带 MAC 的特殊 URL 开启,浏览器地址栏访问:http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1&key=AABBCCDDEEFF(替换 key= 后面为你的 MAC)
  2. 登录 Telnet Windows 先开启 Telnet 功能[^1],然后:telnet 192.168.1.1
  • 用户名:admin
  • 密码:Fh@ + MAC 后6位(大写)
bash
load_cli factory
show admin_pwd

会显示 CMCCAdmin / 超级密码,可登录网页管理页。

安装 DDNS-GO

我的域名基本都使用了 Vercel 的域名解析服务器,ddns-go支持 Vercel API,这让我喜出望外, ddns-go 安装过程:

  1. 下载并解压:访问 ddns-go Releases 页面查看最新版本。这里以 v6.0.0 为例(请根据实际情况替换版本号):
bash
# 创建并进入安装目录
mkdir -p /opt/ddns-go && cd /opt/ddns-go
# 下载对应架构的包
wget https://github.com/jeessy2/ddns-go/releases/download/v6.0.0/ddns-go_6.0.0_linux_x86_64.tar.gz
# 解压文件
tar -zxvf ddns-go_6.0.0_linux_x86_64.tar.gz
  1. 安装为系统服务:ddns-go 提供了自带的服务安装命令,非常方便:
bash
# 安装并启动服务
sudo ./ddns-go -s install
  • 其他常用管理命令:
    • 卸载服务:sudo ./ddns-go -s uninstall
    • 启动服务:sudo systemctl start ddns-go
    • 停止服务:sudo systemctl stop ddns-go

安装成功后, ddns-go 都会默认在后台监听 9876 端口。如果你的 Ubuntu 开启了防火墙,需要允许 9876 端口通行:

bash
sudo ufw allow 9876/tcp

这之后进入 Web 界面配置,打开浏览器,访问对应服务器的9876 端口,在 web 界面中选择DNS 服务商(我使用的是 Vercel),填写对应的 Token/Secret Key。后,在 IPv6 的 Domains 栏输入你的域名,点击保存,右上角会立刻显示解析日志,提示是否解析成功。

使用 FRP 转发云服务器公网 ipv4 流量到内网服务器

ipv6 虽好,能轻易让家庭服务器达到远远大于低价 VPS 的上行带宽,但问题在于覆盖不全。许多网络环境下,ipv6 通信仍然不受支持。经过我的实践,尽管中国移动蜂窝网络大多都支持,但例如我在单位使用的电信的宽带也好,还有许多国内外的云服务器也罢,都不支持访问 ipv6 地址。这就意味着,如果域名只解析 ipv6 地址,部署服务后,访问会非常受限,不仅是没法作为生产环境供一般用户使用,就算只是自己个人使用,也非常不便,没太大意思。

所以还是得支持 ipv4。但由于公网 ipv4 地址是不可得的,这样就必然需要第三方服务器做中转实现内网穿透,带宽就很受限,这就是为什么虽然 ipv6 不能全覆盖,我也要解析的原因。

听说 cloudflare 虽然好用,但由于服务器在国外,会比较慢,于是我选择了使用国内云服务器安装 FRP 来做内网穿透。建立隧道,将端口映射到公网云服务器的端口。

FRP(Fast Reverse Proxy)是一个反向代理内网穿透程序。其远离是:

  1. 内网 frpc 主动连接公网 frps,注册本地服务;
  2. 外网用户访问云服务器公网地址 / 端口;
  3. frps 通过已建立的隧道,把请求转发到内网设备,实现双向通信。

安装部署过程解决国内网络环境问题。

配置、使用过程中,安装 ddns-go 、拉取 docker 镜像等过程,国内都会遇到网络访问障碍。可参考 为服务器配置科学上网 这篇教程,通过安装 Mihomo ,来解决网络环境问题。

查看所有监听端口

ss -tulnp

释义

-t:TCP 端口

-u:UDP 端口

-l:仅监听状态

-n:数字格式(不解析域名/端口名)

-p:显示对应进程

ubuntu 防火墙开放端口
1. 查看防火墙状态
```bash
sudo ufw status

没启用会显示 inactive。

  1. 启用防火墙(如未启用)
bash
sudo ufw enable

注意:远程服务器先放行 ssh(22 端口)再 enable,否则可能断连。

  1. 开放一段端口(示例:7000–10000)
  • 只放 TCP:

    bash
    sudo ufw allow 7000:10000/tcp
  • TCP+UDP 都放:

    bash
    sudo ufw allow 7000:10000
  1. 只允许特定 IP 访问这段端口(更安全)
bash
sudo ufw allow from 192.168.1.0/24 to any port 7000:10000
  1. 删除这条规则(不用时)
bash
# 按编号删(推荐)
sudo ufw delete 编号
# 或直接删规则
sudo ufw delete allow 7000:10000/tcp
  1. 下载软件包需要知道自己 CPU 的CPU 架构,Linux 命令:uname -m
  • x86_64:64位 x86 架构(主流电脑/服务器)
  • i686/i386:32位 x86
  • aarch64/arm64:ARM64(树莓派、国产ARM服务器、手机类)
  • armv7l:32位 ARM
  • riscv64:RISC-V 架构

或者使用 lscpu查看详细硬件信息:

重点看这两行:

Architecture: # 架构(x86_64 / aarch64 等)
CPU op-mode(s): # 支持32/64位模式

sudo ufw status

  1. sudo vi /etc/nginx/sites-available/umami 为什么我加了这个配置文件但不生效 ,还要 nginx sudo ln -s /etc/nginx/sites-available/umami /etc/nginx/sites-enabled/ 查看所有监听端口 ss -tulpn

[^1] windows 默认不启用 telnet 功能,可使用 PowerShell 管理员执行 dism /online /Enable-Feature /FeatureName:TelnetClient 开启

相关内容

  • 为服务器配置科学上网

    为服务器配置科学上网

    创建于2026-06-17

  • 一个小而美的书摘播放器

    一个小而美的书摘播放器

    更新于2026-06-10

  • 【待整理】在 VPS 上部署 Umami

    【待整理】在 VPS 上部署 Umami

    创建于2026-06-10

  • 一个电子画框

    一个电子画框

    更新于2026-06-09

  • linux 常用的命令与操作

    linux 常用的命令与操作

    更新于2026-05-26

文章大纲

  • 所需硬件及配置
  • 效果和试用体验
  • 家庭服务器如何实现公网访问
    • 使用 DDNS 动态解析域名到 IPv6 地址
    • 获取运营商光猫超级管理员密码
      • HG6145D 如何获取超级管理员密码
      • 安装 DDNS-GO
    • 使用 FRP 转发云服务器公网 ipv4 流量到内网服务器
  • 安装部署过程解决国内网络环境问题。
  • 查看所有监听端口
  • 释义
  • -t:TCP 端口
  • -u:UDP 端口
  • -l:仅监听状态
  • -n:数字格式(不解析域名/端口名)
  • -p:显示对应进程

选项
文章 ID: 534

相关内容

  • 为服务器配置科学上网

    为服务器配置科学上网

    创建于2026-06-17

  • 一个小而美的书摘播放器

    一个小而美的书摘播放器

    更新于2026-06-10

  • 【待整理】在 VPS 上部署 Umami

    【待整理】在 VPS 上部署 Umami

    创建于2026-06-10

  • 一个电子画框

    一个电子画框

    更新于2026-06-09

  • linux 常用的命令与操作

    linux 常用的命令与操作

    更新于2026-05-26

dors logoDors

Dors 是花野猫开发为知识工作者打造的数字花园应用,包含的博客、个人记事本、及其他实用功能。

花园

  • 花坛——博客
  • 果园——知识库

工坊——作者开发的实用工具

  • 小记
  • 秒切——一键按秒分割视频
  • 中国重点高校地理位置可视化网站
  • 中国行政区划数据查询平台
  • excel 重命名工具

misc

  • 生活章程
  • 画廊
  • just have fun!

© 2022 - present. All Rights Reserved.滇ICP备2025063395号-1

花野猫打造