搭建家庭服务器
前段时间发现日本的网络竟然提供了公网 IP,一顿折腾下证实是可用的,正好阿里云上面的服务器快过期 就直接从国内京东买了一个 Intel Nuc 11
寄过来准备自己搭建个服务器
安装 Ubuntu server
因为我们不需要 UI 界面,所以我们安装 Ubuntu server
即可,不需要 Ubuntu Desktop
下载镜像后我们就需要制作一个 U 盘启动器来引导安装 Ubuntu server
系统到新的机器上
如何安装其实 Ubuntu
官网也提供了教程: Install Ubuntu Desktop, 虽然文章是以安装 Desktop 举例,但同样适用于 Server 的安装
创建 USB 启动器
下载 balenaEtcher,它可以在 Linux、Windows 和 Mac OS 上运行
下载后的界面非常简单,和 👆 截图一样
- 选择下载好的
Ubuntu server
镜像 - 选择需要安装的 U 盘
- 点击确认开始刷固件
引导安装
后面的步骤因为当时没有截图,可依参考这位 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
查看一下
# 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
即可
# 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
重新应用下最新配置即可
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 仓库
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
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
更新下权限
chmod 666 /var/run/docker.sock
安装 Docker compose
官方文档地址: Install the Compose standalone
# 下载和安装 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
文件权限不够,给他执行权限即可
chmod +x /usr/local/bin/docker-compose
到这里所有的 docker 环境都已就绪,如果上面的命令出现 Permission denied
错误时,可以在前面增加 sudo
运行
Nginx
docker
环境就绪后,我们就可以开始安装 Nginx
了,官方文档地址 Nginx,我们用 docker-compose
来安装,下面只是一个简单的 docker-compose.yml
文件示例
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