Skip to content
On this page

搭建家庭服务器

前段时间发现日本的网络竟然提供了公网 IP,一顿折腾下证实是可用的,正好阿里云上面的服务器快过期 就直接从国内京东买了一个 Intel Nuc 11 寄过来准备自己搭建个服务器

安装 Ubuntu server

因为我们不需要 UI 界面,所以我们安装 Ubuntu server 即可,不需要 Ubuntu DesktopDownload ubuntu server

下载镜像后我们就需要制作一个 U 盘启动器来引导安装 Ubuntu server 系统到新的机器上

如何安装其实 Ubuntu 官网也提供了教程: Install Ubuntu Desktop, 虽然文章是以安装 Desktop 举例,但同样适用于 Server 的安装

创建 USB 启动器

下载 balenaEtcher,它可以在 Linux、Windows 和 Mac OS 上运行

Download balenaEtcher

下载后的界面非常简单,和 👆 截图一样

  1. 选择下载好的 Ubuntu server 镜像
  2. 选择需要安装的 U 盘
  3. 点击确认开始刷固件

引导安装

后面的步骤因为当时没有截图,可依参考这位 Up 主的视频 200 元垃圾从零开始折腾 Docker

连接隐藏 Wi-Fi

整个安装的过程还是非常顺利的,不过在连接 Wi-Fi 上确实踩了很久的坑

安装的过程中有引导我们输入 Wi-Fi 的名称和密码,但是因为我把 Wi-Fi 隐藏了,导致 Wi-Fi 一直没有连上

那么如何连接隐藏 Wi-Fi 呢,我们进入系统后,查看网络连接的配置文件,网络配置默认放在 /etc/netplan/ 文件夹下面的 yaml(刚开始需要 sudo 权限),文件名根据系统版本等差异各不相同,比如我的是在 /etc/netplan/00-installer-config-wifi.yaml

sudo cat /etc/netplan/00-installer-config-wifi.yaml 查看一下

yaml
# This is the network config written by 'subiquity'
network:
  version: 2
  wifis:
    wlp0s20f3:
      access-points:
        "你的 Wi-Fi 名称":
          password: "你的 Wi-Fi 密码"
      dhcp4: true

如果需要连接隐藏 Wi-Fi 我们在 Wi-Fi 的部分加上 hidden: true 即可

yaml
# This is the network config written by 'subiquity'
network:
  version: 2
  wifis:
    wlp0s20f3:
      access-points:
        "你的 Wi-Fi 名称":
          # 加上下面这个配置即可
          hidden: true
          password: "你的 Wi-Fi 密码"
      dhcp4: true

修改完成后用 netplan 重新应用下最新配置即可

shell
sudo netplan generate
sudo netplan apply

可以用 sudo cat /run/netplan/wpa-wlp0s20f3.conf 查看生成的配置

ctrl_interface=/run/wpa_supplicant

network={
  ssid="Wi-Fi 名称"
  # 配置 hidden: true 就有这一行
  scan_ssid=1
  key_mgmt=WPA-PSK
  psk="Wi-Fi 密码"
}

安装 Docker

网络折腾完成后就可以开始安装 Docker 了,同样的 Docker 我们也不需要安装 Desktop 版本!文档地址 Install Docker Engine on Ubuntu

设置 Docker 仓库

shell
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
# Add Docker’s official GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker Engine

shell
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装完成后运行下 docker 命令,发现报错了

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

我们需要给 /var/run/docker.sock 更新下权限

shell
chmod 666 /var/run/docker.sock

安装 Docker compose

官方文档地址: Install the Compose standalone

shell
# 下载和安装 Docker compose
curl -SL https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

完成后就可以用 docker-compose 测试下,但有时候会报错 /usr/local/bin/docker-compose: Permission denied

这个是因为刚安装后 /usr/local/bin/docker-compose 文件权限不够,给他执行权限即可

shell
chmod +x /usr/local/bin/docker-compose

到这里所有的 docker 环境都已就绪,如果上面的命令出现 Permission denied 错误时,可以在前面增加 sudo 运行

Nginx

docker 环境就绪后,我们就可以开始安装 Nginx 了,官方文档地址 Nginx,我们用 docker-compose 来安装,下面只是一个简单的 docker-compose.yml 文件示例

yaml
version: '3.7'

services:
  nginx:
    image: nginx:1.17.8-alpine
    container_name: nginx
    restart: always
    network_mode: host
    volumes:
      - ./configs:/etc/nginx/conf.d
    logging:
      options:
        max-size: 5m

然后在 configs 文件夹下面创建 test.conf 文件,内容如下

server {
  listen 80;
  server_name localhost;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
  }
}

后面如果有增加 Nginx 的配置,在 configs 文件夹下面创建 *.conf 文件即可

Samba

来自 Ubuntu 的教程, Install and Configure Samba