Ubuntu Server 20.04
还是放弃了 Alpine Liunx。系统安装的太慢!对网络要求太高了,还是回到了 Ubuntu Server。
系统安装




















系统设置
在开始时,确保打开光驱,光驱为空。
设置 root 密码
1 2 3 4 5
| rahn@virtualbox:~$ sudo passwd [sudo] password for rahn: New password: Retype new password: passwd: password updated successfully
|
切换到 root
1 2 3 4
| rahn@virtualbox:~$ su root Password: root@virtualbox:/home/rahn# cd root@virtualbox:~#
|
安装增强功能
- 安装依赖环境
1 2 3 4 5
| apt install gcc apt install make
apt install -y gcc make
|
- 点击 VirtualBox 菜单栏 - 设备 - 安装增强功能


- 点击后,执行挂载命令
1 2
| root@virtualbox:~# mount /dev/cdrom /mnt mount: /mnt: WARNING: device write-protected, mounted read-only.
|
提示:如果出现 mount: /mnt: no medium found on /dev/sr0. 错误时,确保打开光驱,光驱为空。再次点击 安装增强功能 ,执行挂载命令。
- 开始安装增强工具
1 2 3 4 5
| cd /mnt ./VBoxLinuxAdditions.run
/mnt/VBoxLinuxAdditions.run
|
- 重启
安装基本环境
1 2
| apt update apt install zip unzip git curl wget nmap iptables iptables-persistent -y
|
一键登录
1 2 3 4
| mkdir ~/.ssh chmod 700 ~/.ssh cd ~/.ssh nano authorized_keys
|
1
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMwe3w4S9SI8pjYMVnibPllQ2b33oB8fx8ZIp/GnyDG/qDdvMZcAYy1M+tmnOk9MViKzFu4agNH70GkdHtHeqzntrizVfdD80JTxigKE/35wEnOdk1k6BvpSCYMMBIqPnmjiXYMBbSDryQCixLJw+7LqYSL9C8+mOSlnzWVQfgdd6kmHzgSrlzn0xiiqOMwGZWn50dXSv8EVIHriqzp/IqD4RDWyqEhKolrZcAl3ukYqZTkkpHNF8YNM0cbKIQbFHHsW8LdCUPh+yZ3OTY9wS4nFmj9eVGHZw4lkBGB8vcHnnu69bW0XYQe/9GKQqOCuolNon9zcky0d9wuKp84Jaz rsa-key-20230612
|
1
| chmod 600 authorized_keys
|
SSH 设置
1
| nano /etc/ssh/sshd_config
|
1 2 3 4 5 6 7 8
| Port 22
# 使用密钥登录 PubkeyAuthentication yes
# 端口转发 AllowTcpForwarding yes GatewayPorts yes
|
固定 iP
1
| nano /etc/netplan/00-installer-config.yaml
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: - 192.168.6.138/24 gateway4: 192.168.6.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
|
1 2 3 4
| #测试连接 netplan try #应用 netplan apply
|
拷贝备份
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| cd /root/shared cp -r data822 /root/data822
# 一键安装 docker cd /root/data822/docker bash install.sh
# 一键安装 docker-compose cd /root/data822/docker-compose bash install.sh
docker -v && docker-compose -v
# 加载离线镜像 cd /root/data822/images bash load.sh
# docker 数据 cp -r /root/Server822/server822.zip /root/server822.zip cd unzip server822.zip
# 开启所有容器
cd /root/shell bash start.sh
docker ps
|
v2rayA 网络代理
v2rayA
- 导入 v2raya 镜像,借助增强工具的共享文件夹
- 启动 v2rayA 容器
- 在网页 2017 端口使用
1 2 3 4
| docker load < v2raya.tar mkdir -p /root/docker/v2rayA cd /root/docker/v2rayA nano docker-compose.yaml
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| services: v2raya: image: mzz2017/v2raya container_name: v2raya restart: always privileged: true network_mode: host environment: - V2RAYA_LOG_FILE=/tmp/v2raya.log volumes: - /lib/modules:/lib/modules:ro - /etc/resolv.conf:/etc/resolv.conf - /etc/v2raya:/etc/v2raya
|
配置 docker 网络代理
- 20171 端口为 v2raya 的 HTTP 端口
- 点击 节点连接 -> 左上角 -> 启动
- 设置 -> 透明代理/系统代理 -> 启用:不进行分流 -> 保存并应用

- 通过修改 /etc/docker/daemon.json 来设置 docker 代理。
1 2
| mkdir -p /etc/docker/ nano /etc/docker/daemon.json
|
1 2 3 4 5
| { "http-proxy": "http://127.0.0.1:20171", "https-proxy": "http://127.0.0.1:20171", "no-proxy": "localhost,127.0.0.1" }
|
1
| systemctl restart docker
|
配置系统代理
- 如果你希望在整个系统中启用 HTTP 代理,你需要设置相应的环境变量。可以通过编辑 /etc/profile 文件来全局配置。
- 编辑 /etc/profile 文件,添加代理配置:
- 在文件的末尾添加以下内容
- 保存并退出文件后,运行以下命令使配置生效
- 验证代理
1 2 3 4
| export HTTP_PROXY="http://127.0.0.1:20171" export HTTPS_PROXY="http://127.0.0.1:20171" export SOCKS5_PROXY="socks5://127.0.0.1:20170" export NO_PROXY="localhost,127.0.0.1"
|
1 2 3 4 5 6 7
| source /etc/profile
echo $HTTP_PROXY echo $HTTPS_PROXY echo $SOCKS5_PROXY
wget google.com
|
初始化网络
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #!/bin/bash
# 清空现有的所有规则 echo "清空现有的所有规则" iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X
# 设置默认策略:接受所有传入流量,允许所有出去流量 echo "设置默认策略:接受所有传入流量,允许所有出去流量" iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT
# 允许本机之间的通信 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
# 限制每秒最大 SYN 包数(防止端口扫描) iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP
# 开启 docker 网络 iptables -A FORWARD -o docker0 -j ACCEPT iptables -A FORWARD -i docker0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# SSH 访问 echo "允许端口 22 (SSH) 访问 " iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# http https iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 保存 iptables 规则 #iptables-save > /etc/iptables/rules.v4:这个命令会将当前的 iptables 配置保存到文件 /etc/iptables/rules.v4 中。 #cat /etc/iptables/rules.v4:显示文件 /etc/iptables/rules.v4 的内容,即当前保存的防火墙规则。 #systemctl enable iptables:这个命令将 iptables 服务添加到系统的启动项中,确保每次启动时防火墙规则都会自动加载。 #systemctl start iptables:启动 iptables 服务,使得防火墙规则立即生效。 #stemctl status iptables:显示当前服务的状态,可以查看哪些服务正在运行或已启动。
iptables-save > /etc/iptables/rules.v4 cat /etc/iptables/rules.v4 systemctl enable iptables systemctl start iptables # 查看 iptables 状态 # systemctl status iptables echo "保存 iptables 规则"
# 重启 docker systemctl restart docker # 查看 docker 状态 # systemctl status docker echo "重启 docker 完毕!"
|
离线安装 docker 与 docker-compose
docker 离线下载
docker-compose
1
| cp -r /root/shared/docker/install /root/install
|
安装 OpenList
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| services: openlist: restart: always volumes: - ./data:/opt/openlist/data - /root:/root ports: - 5244:5244 - 5245:5245 user: 0:0 environment: - UMASK=022 - TZ=Asia/Shanghai container_name: openlist image: openlistteam/openlist:latest
|
NPM 本地 https
使用 mkcert 实现本地 https 访问。
明明是简单的几步,硬控了我几个月!!!
在测试的时候,千万不要开代理!!!
mkcert 在文件夹内打开 cmd 输入。
1
| mkcert.exe -install *.rahn.top
|
来到 C:\Windows\System32\drivers\etc\hosts 编写 hosts
1 2 3
| 192.168.6.101 npm.rahn.top 192.168.6.101 wp.rahn.top 192.168.6.101 pw.rahn.top
|
更新 DNS
来到 Nginx Proxy Manager 点击 SSL Certificates -> Add SSL Certificate -> Custom -> 导入生成的文件。
来到 Proxy Hosts -> Add Proxy Host -> 添加 NPM 时,写本地地址为 127.0.0.1:81。别的均为服务器桥接 IP 地址(192.168.6.101)。
1 2 3
| mkcert.exe -install *.rahn.top -install # 这个命令不仅生成了证书,还会将生成的根证书(rootCA.pem)安装到系统和浏览器的信任存储中。这样,生成的证书就会被系统和浏览器信任,不会出现证书不受信任的警告。 # 该命令适用于需要让系统或浏览器信任生成的证书,通常在首次使用 mkcert 时需要加上 -install 选项。
|
1 2 3
| mkcert.exe *.rahn.top # 没有 -install 选项:这个命令只会生成证书文件,而不会自动将根证书安装到系统的信任存储中。生成的证书依然可以在本地使用,但浏览器和操作系统可能会提示证书不受信任,除非你手动将根证书添加到信任列表中。 # 这个时候需要修改 raye.com.pem 文件,修改为 raye.com.crt 右键,安装证书。
|
github 环境
镜像制作
1 2 3 4
| docker exec -it message2025 sh apk add bash git openssh bash git.sh exit
|
1 2 3 4 5 6 7 8
| git config --global user.name "message2026" git config --global user.email "message2026@nnc.life"
ssh-keygen -t rsa -C "message2026@nnc.life"
cd /root/.ssh cp id_rsa.pub id_rsa /blog cat id_rsa.pub
|
1 2
| docker commit 475774f8b45f raye2025/github:message2025 docker push raye2025/github:message2025
|
1 2 3 4 5 6
| rm -rf /root/docker/Trilium/trilium-data/log/* && zip -r data.zip /root/docker/Trilium/trilium-data docker exec -it comeyna bash -c "hexo clean && hexo generate && hexo deploy" docker exec -it message2025 bash -c "hexo clean && hexo generate && hexo deploy" docker exec -it steps bash -c "hexo clean && hexo generate && hexo deploy"
chmod +x steps.sh message2025.sh data.sh comeyna.sh
|
虚拟机扩容到整盘 60G
先查看磁盘和分区:
1 2 3 4 5
| # 1. 把卷组里的空闲空间全部分配给根分区 sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 2. 扩展文件系统 (默认 Ubuntu 是 ext4) sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
|