小主机搭建远程开发服务器(完整指南)

一台低功耗小主机 + Ubuntu Server + Mise 多版本管理器 = 随时随地远程开发,告别本地电脑卡顿。

目录

  1. 硬件与网络规划
  2. 制作 Ubuntu 安装 U 盘
  3. 安装 Ubuntu Server 24.04.2 LTS
  4. 首次启动与基础配置
  5. 安装 Mise 多版本管理器
  6. 安装 Node.js / Java / PHP(含旧版特殊处理)
  7. 安装 MySQL、Redis、Nginx
  8. 远程开发:VSCode Remote-SSH + Samba 映射
  9. 挂载 NAS 扩展存储(可选)
  10. 防火墙与开机优化
  11. 进阶:阿里云 ECS 做 FRP 内网穿透(备用)
  12. 结语

1. 硬件与网络规划

设备清单

  • 小主机:畅网 CW-NUC-ATL-2L(CPU N350,16G DDR5 内存,500G SSD)
  • 主路由:中兴 7200max(LAN IP 192.168.0.1
  • 开发机:Windows 11(固定 IP 192.168.0.10
  • NAS(可选):群晖 / 其他(固定 IP 192.168.0.66

固定 IP 规划

设备 静态 IP 网关 DNS
Ubuntu 服务器 192.168.0.11 192.168.0.1 114.114.114.114
Windows 主力机 192.168.0.10 192.168.0.1 114.114.114.114
NAS 192.168.0.66 192.168.0.1 114.114.114.114

主路由 DHCP 范围:建议设为 192.168.0.100 – 192.168.0.200,避免与固定 IP 冲突。


2. 制作 Ubuntu 安装 U 盘

  1. 下载 Ubuntu Server 24.04.2 LTS ISO:官方下载
  2. 下载 Rufus(Windows):https://rufus.ie/
  3. 插入 U 盘(≥8GB),打开 Rufus:
    • 设备:选择 U 盘
    • 引导类型:选择下载的 ISO 文件
    • 分区类型:GPT
    • 目标系统:UEFI(非 CSM)
  4. 点击“开始”,等待写入完成。

3. 安装 Ubuntu Server 24.04.2 LTS

3.1 启动与安装

  • U 盘插入 N350,开机按 F7 / F11 选择 U 盘启动。
  • 语言选择 EnglishInstall Ubuntu Server

3.2 网络配置(手动设置静态 IP)

  • 选择网卡 → Edit IPv4Manual
  • 填写:

Subnet: 192.168.0.11/24
Gateway: 192.168.0.1
Name servers: 114.114.114.114

  • 完成后退回主菜单。

3.3 代理与镜像

  • 代理:留空
  • 镜像源:暂时使用默认官方源(安装完成后切换国内源)

3.4 磁盘分区

  • 选择 Use an entire disk
  • 磁盘:/dev/sda
  • 勾选 Set up this disk as an LVM group
  • 不要勾选 LUKS 加密
  • 确认写入。

3.5 用户信息

  • 主机名:ubuntu-dev
  • 用户名:dev(推荐,后续命令均以此为例)
  • 密码:设置强密码

3.6 SSH 与 Snap

  • Install OpenSSH server:勾选(空格键)
  • Featured Server Snaps:全部不选,直接 Done

等待安装完成,拔掉 U 盘,重启。


4. 首次启动与基础配置

4.1 登录

dev@ubuntu-dev:~$

4.2 切换国内软件源(加速)

Ubuntu 24.04 使用 DEB822 格式,编辑源文件:

bash

sudo sed -i 's|http://archive.ubuntu.com/ubuntu|http://mirrors.ustc.edu.cn/ubuntu|g' /etc/apt/sources.list.d/ubuntu.sources
sudo sed -i 's|http://security.ubuntu.com/ubuntu|http://mirrors.ustc.edu.cn/ubuntu|g' /etc/apt/sources.list.d/ubuntu.sources
sudo apt update && sudo apt upgrade -y

4.3 安装基础工具

bash

sudo apt install -y git curl wget vim htop net-tools build-essential nginx plocate
sudo updatedb   # 初始化 plocate 数据库

4.4 确认静态 IP

bash

ip a

如果不是 192.168.0.11,编辑 netplan:

bash

sudo nano /etc/netplan/00-installer-config.yaml

修改为:

yaml

network:
  version: 2
  ethernets:
    enp1s0:
      addresses:
        - 192.168.0.11/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses: [114.114.114.114]

bash

sudo netplan apply

4.5 确保 SSH 开机自启

bash

sudo systemctl enable --now ssh

5. 安装 Mise 多版本管理器

Mise 可以管理 Node.js、Java、PHP、Python 等几十种工具,且支持项目级配置文件 .mise.toml

bash

curl https://mise.jdx.dev/install.sh | sh

将以下内容添加到 ~/.bashrc 末尾:

bash

echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
source ~/.bashrc

验证:

bash

mise --version

6. 安装 Node.js / Java / PHP(含旧版特殊处理)

6.1 Node.js(多版本)

bash

mise use -g node@16 node@18 node@20

切换测试:node -v

6.2 Java(OpenJDK)

bash

mise use -g java@11 java@17 java@21

验证:java -version

6.3 PHP 多版本(关键步骤)

原因说明

  • PHP 7.4 和 8.0 因 OpenSSL 版本兼容问题,直接通过 mise install 可能失败。
  • 解决方法:使用 Ubuntu 官方 apt 源安装 7.4 和 8.0,然后通过 mise alias 将它们纳入版本管理。
  • PHP 8.1、8.2、8.3 则使用 mise + 阿里云镜像正常安装。

6.3.1 安装 PHP 7.4 和 8.0(apt 方式)

bash

sudo apt update
sudo apt install -y php7.4-cli php7.4-common php7.4-opcache php7.4-readline \
    php7.4-mbstring php7.4-xml php7.4-curl php7.4-zip

sudo apt install -y php8.0-cli php8.0-common php8.0-opcache php8.0-readline \
    php8.0-mbstring php8.0-xml php8.0-curl php8.0-zip

确认路径:

bash

which php7.4   # 输出类似 /usr/bin/php7.4
which php8.0   # 输出类似 /usr/bin/php8.0

6.3.2 将 7.4 和 8.0 加入 Mise 管理

bash

mise alias set php 7.4 /usr/bin/php7.4
mise alias set php 8.0 /usr/bin/php8.0
mise use php@7.4   # 测试切换到 7.4
php -v
mise use php@8.0   # 测试切换到 8.0
php -v

6.3.3 安装 PHP 8.1/8.2/8.3(使用 Mise + 阿里云镜像)

bash

# 安装编译依赖
sudo apt install -y autoconf bison re2c libxml2-dev libsqlite3-dev

# 添加 Mise PHP 插件并设置阿里云镜像
mise plugin add php https://github.com/jdx/mise-php.git
export PHP_MIRROR=https://mirrors.aliyun.com/php/

# 安装各版本
for v in 8.1 8.2 8.3; do
    mise install php@$v
done

# 设置全局默认版本(例如 8.3)
mise use -g php@8.3

6.3.4 验证所有 PHP 版本

bash

mise list php
mise use php@7.4 && php -v
mise use php@8.0 && php -v
mise use php@8.1 && php -v
mise use php@8.2 && php -v
mise use php@8.3 && php -v

7. 安装 MySQL、Redis、Nginx

7.1 MySQL

bash

sudo apt install -y mysql-server
sudo mysql_secure_installation   # 设置 root 密码,按提示操作

创建开发用户(可选):

sql

sudo mysql
CREATE USER 'dev'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'dev'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

7.2 Redis

bash

sudo apt install -y redis-server
sudo systemctl enable --now redis-server
redis-cli ping   # 应返回 PONG

7.3 Nginx

bash

sudo systemctl enable --now nginx

8. 远程开发:VSCode Remote-SSH + Samba 映射

8.1 VSCode Remote-SSH(主力方式)

  1. 在 Windows 上安装 VSCode,搜索安装插件 Remote - SSH
  2. F1Remote-SSH: Add New SSH Host → 输入 dev@192.168.0.11
  3. 选择配置文件保存路径,连接后输入密码。
  4. 打开文件夹 /home/dev/projects(需提前创建)。
  5. 在终端中运行 npm run dev,VSCode 会自动转发端口到本地浏览器。

8.2 Samba 文件映射(方便轻量编辑)

安装 Samba:

bash

sudo apt install -y samba

编辑配置:

bash

sudo nano /etc/samba/smb.conf

在末尾添加:

ini

[dev-projects]
   path = /home/dev/projects
   browseable = yes
   writable = yes
   read only = no
   create mask = 0775
   directory mask = 0775
   valid users = dev

设置 Samba 密码:

bash

sudo smbpasswd -a dev   # 可与系统密码不同
sudo systemctl restart smbd

在 Windows 资源管理器地址栏输入 \\192.168.0.11\dev-projects,输入用户名 dev 和刚才设置的 Samba 密码即可映射为网络驱动器。

注意​:Samba 适合直接编辑文本文件,但运行、调试、AI 插件推荐仍使用 Remote-SSH。


9. 挂载 NAS 扩展存储(可选)

假设 NAS 使用 SMB 协议,IP 192.168.0.66,共享文件夹 Backup,用户名 nas_user

bash

sudo apt install -y cifs-utils
sudo mkdir /mnt/nas
sudo mount -t cifs //192.168.0.66/Backup /mnt/nas -o username=nas_user,password=nas_pass,uid=dev,gid=dev,vers=3.0

开机自动挂载:编辑 /etc/fstab,添加一行:

bash

//192.168.0.66/Backup /mnt/nas cifs username=nas_user,password=nas_pass,uid=dev,gid=dev,vers=3.0 0 0

好处​:将大文件(依赖包、数据库备份、媒体文件)存放在 NAS,节省本地 SSD 空间。


10. 防火墙与开机优化

10.1 启用 UFW 防火墙

bash

sudo ufw allow OpenSSH
sudo ufw allow from 192.168.0.0/24 to any port 3306 proto tcp   # 允许局域网访问 MySQL
sudo ufw allow from 192.168.0.0/24 to any port 6379 proto tcp   # 允许局域网访问 Redis
sudo ufw enable
sudo ufw status verbose

10.2 自动安全更新(可选)

bash

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

11. 进阶:阿里云 ECS 做 FRP 内网穿透(备用)

如果你有一台阿里云 ECS(公网 IP,带宽 3Mbps),可以部署 FRP 实现在外网访问家里的开发服务器。

服务端(阿里云 ECS)

  1. 下载 frp:https://github.com/fatedier/frp/releases

  2. 解压,编辑 frps.toml
    toml

    bindPort = 7000
    auth.token = "your_token"
    
  3. 启动:./frps -c frps.toml

  4. 开放阿里云安全组端口 7000 以及后续需要穿透的端口(如 6000、6001)。

客户端(Ubuntu 开发机)

  1. 同样下载 frp,编辑 frpc.toml
    toml

    serverAddr = "你的ECS公网IP"
    serverPort = 7000
    auth.token = "your_token"
    
    [[proxies]]
    name = "ssh"
    type = "tcp"
    localIP = "127.0.0.1"
    localPort = 22
    remotePort = 6000
    
  2. 启动客户端:./frpc -c frpc.toml

  3. 在外网使用 ssh -p 6000 dev@ECS公网IP 即可连接到家中的 Ubuntu 服务器。

注意:3M 带宽仅适合 SSH、RDP 等低流量场景,不适合看视频或大文件传输。


12. 结语

至此,你拥有了一台低功耗、高性能、全功能的远程开发服务器:

  • 所有环境运行在物理机上,无虚拟化开销
  • Mise 自由切换 Node/Java/PHP 等数十种版本
  • MySQL、Redis、Nginx 原生安装,稳定高效
  • VSCode Remote-SSH + Samba 映射,Windows 下操作如本地
  • NAS 挂载扩展存储,阿里云 ECS 作为备用穿透