🌟 引言#把旧电脑变成 7×24 小时运行的私有云?自主掌控照片、视频、文档的备份与同步?在电视上流畅播放 4K 电影(支持 Intel 核显硬解)?用 iSCSI 将机械硬盘映射为 Windows 的“本地磁盘”来存 Steam 游戏?搭建《我的世界》服务器,和朋友随时联机?这一切,只需一台家用服务器即可实现。

💡 建议配置:2 核 CPU、4GB+ 内存、2 块以上硬盘、有线网络(更稳定)。本教程基于 Ubuntu Server 24.04,适合有一定 Linux 基础的用户。

🛠️ 底层基础:系统、网络、存储、协议与开发环境#🔧 APT软件仓库更新。#

# 检查可用的软件包更新

sudo apt update

# 安装可用的软件包更新

sudo apt upgrade

📊 查看系统状态#

# 打印所有服务状态

sudo service --status-all

# 查看整个系统磁盘使用情况

df -h

# 列出所有可用block设备的信息

lsblk

# 打印已安装包列表

dpkg -l

🌐 网络配置#📍 配置静态IP地址与 WiFi (可选)#sudo nano /etc/netplan/50-cloud-init.yaml

ethernets:

ens33:

dhcp4: false

addresses:

- 192.168.1.100/24

routes:

- to: default

via: 192.168.1.1

nameservers:

addresses:

- 8.8.8.8

- 114.114.114.114

wifis:

wlan0:

dhcp4: true

access-points:

"MyHomeWiFi":

password: "mysecretpassword"

# 检查语法

sudo netplan generate

# 120秒安全回滚模式测试

sudo netplan try

#

sudo netplan apply

🔐 生成SSH KEY#ls -al ~/.ssh

ssh-keygen -t ed25519 -C "email"

cat ~/.ssh/id_ed25519.pub

💾 存储配置#🧩 传统磁盘 RAID (可选)#sudo mdadm --zero-superblock /dev/sdb

sudo mdadm --zero-superblock /dev/sdc

# 创建 RAID 0 阵列 /dev/md0

sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc

🗃️ ZFS 文件系统(推荐)#Zettabyte File System由Sun Microsystems开发的第一个128位文件系统,最初用于Solaris 10操作系统。

设计目标是提供一个高扩展性、强大且易于管理的文件系统。

存储池 —— 与传统文件系统不同,ZFS将所有设备集中到一个存储池中进行管理,这使得文件系统不再局限于单独的物理设备。写时拷贝事务模型 —— 含有活动数据的块从不被覆盖,而是分配一个新块,并将修改后的数据写在新块上。快照与克隆 —— 快照是文件系统在某一时刻的只读副本,而克隆是可写的快照。动态条带化 —— 当额外的设备被加入到存储池中时,条带宽度会自动扩展以包含这些设备。数据完整性与自我修复 —— 它对所有数据进行256位的校验,并在发现错误时自动修复。高效的数据压缩 —— 可以提供极快的压缩和解压缩速度。

# Ubuntu 24.04 已内置 OpenZFS(2.2+),只需安装用户态工具

# 安装 ZFS 工具

sudo apt install -y zfsutils-linux

# 创建 ZFS 存储池(zpool)

sudo zpool create -f -o ashift=12 games sdb sdc sdd sde

# 查看池状态

sudo zpool status games

# 创建 ZVOL

sudo zfs create -V 10T -o volblocksize=4K games/steam

# 查看挂载点

zfs list

# -f:强制创建

# -o ashift=12:4K 扇区对齐

# nas:池名称

# /dev/sdf:硬盘设备

sudo zpool create -f -o ashift=12 nas /dev/sdg

# 启用高效压缩

sudo zfs set compression=zstd nas1

# 创建 dataset(自动挂载到 /nas/home)

sudo zfs create nas/home

# 查看池状态

zpool status nas

# 查看挂载点

df -h /nas/home

📡 通信协议服务#关于DHCP、TFTP、HTTP、SMB、NFS、iSCSI等通信服务的安装,请参考下列文章。

Windows10 无盘启动7 分钟部署

示例

配置

项目站点背景 # 准备 # 服务器 # 搭建DHCP服务 搭建TFTP服务 搭建HTTP服务 搭建SMB服务 搭建NFS服务 搭建iSCSI服务 编译iPXE 下载wimboot 构建WinPE 下载Windows安装包 客户端 # 进入主板的BIOS设置中💻 开发环境#🐘 PHP#安装PHP和所需的Modules#ctype (included with PHP)curlDOMfileinfo (included with PHP)filter (only on Mageia and FreeBSD)GDlibxml (requires Linux package libxml2 version >= 2.7.0)mbstringOpenSSL (included with PHP)posixsession (included with PHP)SimpleXMLXMLReaderXMLWriterzipzlib

sudo apt show php

sudo apt install -y php-fpm php-mysql php-gd php-curl php-mbstring \

php-intl php-xml php-zip php-bz2 php-ldap php-apcu \

php-imagick php-smbclient php-redis

php -v

#sudo systemctl enable --now php8.3-fpm

sudo systemctl status php8.3-fpm

☕ JAVA#安装#sudo apt update

sudo apt install -y openjdk-21-jre-headless

java -version # 确认版本

📦 Node.js#概述#安装#curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - &&\

sudo apt install -y nodejs

sudo apt install nodejs

# 安装npm

sudo apt install npm

# 安装版本管理模块

sudo npm install -g n

# 升级指定版本

sudo n lts

🗄️ MySQL#安装MySQL#sudo apt install -y mysql-server

# 启动 MySQL

sudo systemctl enable --now mysql

# 运行安全初始化

sudo mysql_secure_installation

# 默认会为数据库的 root 用户启用 auth_socket 插件。

sudo mysql

添加默认用户#CREATE USER 'yang'@'localhost' IDENTIFIED BY 'password';

grant all on *.* to yang@'localhost';

SHOW GRANTS FOR 'yang'@'localhost';

revoke all on *.* from yang@'localhost';

select user();

mysql -u yang -p

为 Nextcloud 创建数据库和用户#CREATE DATABASE nextcloud;

CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'your_password';

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';

FLUSH PRIVILEGES;

EXIT;

🧰 composer#安装和配置PHP的依赖关系管理器

php -r "copy('https://getcomposer.org/installer ', 'composer-setup.php');"

php composer-setup.php

# 全局调用

sudo mv composer.phar /usr/local/bin/composer

# 切换为国内镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# 更新

composer selfupdate

📺 顶层服务#🎮 搭建游戏仓库#

# 进入 iSCSI 配置的命令行界面

sudo targetcli

# 将磁盘阵列 /dev/md0 定义为一个存储设备:

/backstores/block create steam_disk /dev/zvol/games/steam

# 创建 iSCSI Target (IQN)

/iscsi create

# 创建 LUN (逻辑单元号)

/tpg1/luns create /backstores/block/steam_disk

# 配置 ACL (访问控制列表)

tpg1/acls create

# 启用“自动生成 ACL”

set attribute generate_node_acls=1

# 禁用身份验证

set attribute authentication=0

saveconfig

exit

📁 搭建文件共享#基于NFS#基于SMB#

# 停止 Samba(避免权限冲突)

sudo systemctl stop smbd

# 修改配置文件

sudo nano /etc/samba/smb.conf

[share]

comment = My Public Storage

path = /nas/home

browseable = yes

writable = yes

create mask = 0777

directory mask = 0777

# guest ok = yes

valid users = writeuser

# 创建 Samba 用户

sudo useradd -r -s /bin/false writeuser

# 设置密码

sudo smbpasswd -a writeuser

# 修复权限

sudo chown -R writeuser:writeuser /nas/home

sudo chmod -R 0775 /nas/home

# 验证修复结果

ls -ld /nas/home

# drwxrwxr-x 2 writeuser writeuser 2 Nov 29 01:16 /nas/home

# 重启 Samba

sudo systemctl start smbd

🎬 Jellyfin —— 媒体系统#Jellyfin 是一个由志愿者打造的媒体解决方案,让你完全掌控自己的媒体内容。

从你自己的服务器向任意设备串流播放,无任何限制。

你的媒体,你的服务器,由你做主。

步骤 1 :安装## 添加官方仓库(Ubuntu 24.04 示例)

wget -O- https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/jellyfin-team.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/jellyfin-team.gpg] https://repo.jellyfin.org/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

sudo apt update

sudo apt install jellyfin

步骤 2 :配置媒体目录权限#sudo mkdir -p /nas/home/Videos

sudo chown -R $USER:jellyfin /nas/home/Videos

sudo chmod -R 755 /nas/home/Videos

步骤 3 :启用硬件转码#Intel 核显

sudo usermod -aG video jellyfin

sudo systemctl restart jellyfin

📥 qBittorrent#免费、开源且无广告的 P2P BitTorrent 下载客户端。

项目旨在提供一个 µTorrent 的开源替代软件。

步骤 1 :安装#sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable

sudo apt update

sudo apt install qbittorrent-nox

步骤 2 :创建专用用户与目录(官方建议)#

# 创建用户

sudo adduser qbtuser

# 禁用 shell 登录(安全)

sudo usermod -s /usr/sbin/nologin qbtuser

# 创建目录

sudo mkdir -p /nas/home/Downloads{Documents,Music,Pictures,Videos}

#

sudo chown -R qbtuser:qbtuser /nas/home/Downloads

步骤 3 :初始化配置#

# 切换到 qbtuser 用户

sudo -u qbtuser -s /bin/bash

# 手动运行一次(会生成配置 + 接受免责声明)

qbittorrent-nox --webui-port=8081

# You must accept the legal disclaimer to continue. Do you agree? [y/n]: y

步骤 4 :使用官方模板启用服务#

# 启动服务(注意 @qbtuser)

sudo systemctl start qbittorrent-nox@qbtuser

# 设为开机自启

sudo systemctl enable qbittorrent-nox@qbtuser

步骤 5 :验证#systemctl status qbittorrent-nox@qbtuser

journalctl -u qbittorrent-nox@qbtuser -n 10 --no-pager

要控制 qBittorrent,请访问下列地址的 WebUI:http://localhost:8080

WebUI 管理员用户名是:admin

🖥️ Cockpit#一款基于WEB的服务器管理图形界面。

步骤 1 :安装#sudo apt install -y cockpit \

cockpit-storaged \ # 存储管理(RAID/挂载点)

cockpit-packagekit \ # 软件更新

cockpit-pcp \ # 性能监控(可选)

cockpit-file-sharing \ # 图形化文件共享

cockpit-logs \ # 服务日志

步骤 2 :启动服务#sudo systemctl enable --now cockpit.socket

步骤 3 :权限## 将登录用户加入 sudo 组

sudo usermod -aG sudo family_member

☁️ Nextcloud#下载#cd /var/www

sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2

sudo tar -xjf latest.tar.bz2

sudo mv nextcloud nextcloud

sudo chown -R www-data:www-data /var/www/nextcloud

配置为可用的网站## 创建并编辑配置文件

sudo nano /etc/nginx/sites-available/nextcloud

📚 Docusaurus#默认页面位于**/var/www/html/**位置。

您可以将静态页面放在此处,或者使用虚拟主机并将其放在其他位置。

虚拟主机是一种在同一服务器上托管多个域名的方法。

Docusaurus是一款现代化的静态网页生成器。

使用命令行工具可以帮助你快速简单地安装Docusaurus并搭建网站框架。

cd /var/www

npx create-docusaurus@latest tutorials classic

我们需要将网站生成为静态内容,并上传到网络服务器,才能被其他人访问。

要构建站点,请使用以下命令:

cd tutorials

npm run build

设置虚拟主机#要设置虚拟主机,我们需要在**/etc/nginx/sites-enabled/**目录中创建文件。

对于本教程,我们将在81端口上提供我们的站点,而不是标准的80端口。

如果您愿意,可以更改它。

cd /etc/nginx/sites-enabled

sudo "${EDITOR:-vi}" tutorials

server {

listen 81;

listen [::]:81;

server_name docs.minebox.xyz;

root /var/www/tutorials/build;

index index.html;

location / {

try_files $uri $uri/ =404;

}

}

root是放置our.html文件的目录。

index用于指定访问站点根目录时可用的文件。

server_name可以是您想要的任何内容,因为您现在还没有将它指向任何真实的域。

通过在sites-enabled目录新建一个链接

sudo ln -s /etc/nginx/sites-available/docs.minebox.xyz.conf /etc/nginx/sites-enabled/

激活虚拟主机并测试结果#要使我们的站点工作,只需重新启动Nginx服务。

sudo service nginx restart

让我们检查一下是否一切正常。

在web浏览器中打开我们新创建的网站。

请记住,我们使用了:81端口。

👻 Ghost#安装#usermod -aG sudo lighthouse

sudo mkdir -p /var/www/minebox

sudo chown lighthouse:lighthouse /var/www/minebox

sudo chmod 775 /var/www/minebox

cd /var/www/minebox

ghost install

配置#🎮 游戏服务器#Minecraft#步骤 1 :安装 Java 21(OpenJDK)#步骤 2 :创建专用用户与目录#sudo adduser --system --group minecraft

sudo mkdir -p /opt/minecraft

sudo chown minecraft:minecraft /opt/minecraft

ls -la /opt/minecraft

步骤 2 :下载 PaperMC#一款广泛使用、高性能的《我的世界》服务器,旨在修复游戏玩法和机制的不一致之处。

cd /opt/minecraft

sudo -u minecraft wget -O paper.jar https://fill-data.papermc.io/v1/objects/a61a0585e203688f606ca3a649760b8ba71efca01a4af7687db5e41408ee27aa/paper-1.21.10-117.jar

步骤 3 :初始化配置#首次启动会自动生成 eula.txt 和 server.properties 。

sudo -u minecraft java -Xms1G -Xmx4G -jar paper.jar nogui

# 首次启动会失败(需同意 EULA),编辑 eula.txt

sudo -u minecraft sed -i 's/false/true/g' eula.txt

步骤 4 :关键优化项#

# 编辑

sudo nano /opt/minecraft/server.properties

# 基础设置

server-port=25565

server-ip=0.0.0.0

online-mode=false # 支持第三方启动器

max-players=20

view-distance=8 # 降低以节省内存(默认 10)

simulation-distance=6 # 1.18+ 新参数,控制区块模拟距离

motd=§aMy PaperMC Server §7(1.21.10)

# 性能

enable-jmx-monitoring=false

sync-chunk-writes=true

enable-status=true

allow-flight=false

# 世界

level-name=world

level-type=minecraft\:normal

generate-structures=true

步骤 5 :创建 systemd 服务(自动启动 + 崩溃重启)#

# 编辑

sudo nano /etc/systemd/system/minecraft.service

[Unit]

Description=Minecraft Server (PaperMC)

After=network.target

[Service]

Type=simple

User=minecraft

WorkingDirectory=/opt/minecraft

ExecStart=/usr/bin/java -Xms1G -Xmx4G -jar paper.jar nogui

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

步骤 6 :启用服务#

sudo systemctl daemon-reload

sudo systemctl enable --now minecraft

# Created symlink /etc/systemd/system/multi-user.target.wants/minecraft.service → /etc/systemd/system/minecraft.service.

sudo systemctl status minecraft

# 实时日志

journalctl -u minecraft -f

# 重启服务器

sudo systemctl restart minecraft

步骤 7 :自动备份#

# 编辑文件

sudo nano /etc/cron.daily/minecraft-backup

#!/bin/bash

# 停止服务器(可选,或使用插件热备份)

sudo systemctl stop minecraft

# 备份 world 目录

tar -czf /nas/home/backups/minecraft_$(date +%F).tar.gz -C /nas/home/backups/ world

# 启动服务器

sudo systemctl start minecraft

每日一次

# 赋予执行权限

sudo chmod +x /etc/cron.daily/minecraft-backup

SteamCMD#SteamCMD是一个命令行版本的 steam 客户端。

它的主要用途是在一个命令行界面的 Steam 客户端上安装及更新各种可用的专用服务端。

它适用于使用 SteamPipe 内容分发系统的游戏。

步骤 2:创建专用用户和目录

# 创建系统用户(无登录 shell)

sudo adduser --system --group --home /opt/steam --shell /bin/bash steam

# 创建目录结构

sudo mkdir -p /opt/steam/{servers,logs}

sudo chown -R steam:steam /opt/steam

📌 结语#你现在拥有一台功能完整的家庭服务器:

✅ 私有云盘(Nextcloud)

✅ 4K 媒体中心(Jellyfin)

✅ 高速游戏仓库(iSCSI)

✅ 全家文件共享(SMB/NFS)

✅ 《我的世界》联机服务器

下一步可探索:

外网访问(Tailscale + Let’s Encrypt)

ZFS 自动快照备份

统一入口(Heimdall / Organizr)

🎥 如果这期教程对你有帮助,点赞、投币、收藏就是最大支持!

💬 评论区告诉我:你最想用家庭服务器实现什么功能?

Windows10 无盘启动7 分钟部署

示例

配置

项目站点背景 # 准备 # 服务器 # 搭建DHCP服务 搭建TFTP服务 搭建HTTP服务 搭建SMB服务 搭建NFS服务 搭建iSCSI服务 编译iPXE 下载wimboot 构建WinPE 下载Windows安装包 客户端 # 进入主板的BIOS设置中

**警告!**此操作具有破坏性!

**query ip**

`sudo apt install net-tools`

`ifconfig`

![Screenshot from 2025-08-19 00-50-02](https://img2024.cnblogs.com/blog/1934119/202508/1934119-20250818235150555-1406524895.png )

[nmap](https://nmap.org/ ) **网络嗅探器**

``sudo apt install nmap``

**扫描局域网主机发现**

``sudo nmap -sP 192.168.45.0/24``

![Screenshot from 2025-08-19 00-59-53](https://img2024.cnblogs.com/blog/1934119/202508/1934119-20250819000214050-975613229.png )

![](https://img2020.cnblogs.com/blog/1934119/202102/1934119-20210202001206737-1731645141.png )

![](https://img2020.cnblogs.com/blog/1934119/202102/1934119-20210202002535367-1065141937.png )

Copyright © 2088 2017乒乓球世界杯_世界杯体彩 - uzhiqu.com All Rights Reserved.
友情链接