跳转到内容

Linux 服务器管理(以 Debian12 为例)

更新系统与软件包

  1. 更新软件包索引
    终端窗口
    1
    sudo apt update
  2. 升级已安装的软件包
    终端窗口
    1
    sudo apt upgrade -y
  3. 安装常用软件包
    终端窗口
    1
    sudo apt install \
    2
    net-tools \
    3
    htop \
    4
    lsof \
    5
    curl \
    6
    wget \
    7
    vim \
    8
    git \
    9
    exa -y

用户、组和权限管理

用户管理

若无 sudo 包先装 sudo

终端窗口
1
apt install sudo -y

创建新用户

终端窗口
1
sudo adduser <username>

授予 sudo 权限

终端窗口
1
usermod -aG sudo <username>

切换到新用户

终端窗口
1
su - <username>

新用户创建 .ssh 目录并设置权限

终端窗口
1
mkdir -p ~/.ssh
2
chmod 700 ~/.ssh

创建 authorized_keys 文件并设置权限

终端窗口
1
touch ~/.ssh/authorized_keys
2
chmod 600 ~/.ssh/authorized_keys

定期检查

用户和组管理:

  • 列出用户:cat /etc/passwd
  • 列出组:cat /etc/group

SSH

上传 SSH 公钥到服务器

终端窗口
1
ssh-copy-id -i path/to/cert.pub -p port username@remote_host

配置 sshd_config

终端窗口
1
sudo vim /etc/ssh/sshd_config
/etc/ssh/sshd_config
1
Port 22
2
Port 11408 // 随机一个高位端口
3
4
PermitRootLogin yes
5
PermitRootLogin no
6
7
PasswordAuthentication yes
8
PasswordAuthentication no
9
10
PubkeyAuthentication no
11
PubkeyAuthentication yes

重启 SSH 服务

终端窗口
1
sudo systemctl restart ssh

在本地添加 SSH 登录的配置项

终端窗口
1
vim ~/.ssh/config
1
Host server_name
2
User username
3
HostName remote_host
4
Port remote_port
5
IdentitiesOnly yes

Docker

安装 docker engine

官方文档教程:Docker Engine - Install - Debian

使用 apt 安装

  1. 配置 Docker 的 apt 仓库
    终端窗口
    1
    # Add Docker's official GPG key:
    2
    sudo apt-get update
    3
    sudo apt-get install ca-certificates curl
    4
    sudo install -m 0755 -d /etc/apt/keyrings
    5
    sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
    6
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    7
    8
    # Add the repository to Apt sources:
    9
    echo \
    10
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
    11
    $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
    12
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    13
    sudo apt-get update
  2. 安装 Docker 软件包
    终端窗口
    1
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  3. 验证安装
    终端窗口
    1
    sudo docker --version

安装后要进行的操作

官方文档教程:Docker Engine - Install - Linux-postinstall

非 root 用户管理 Docker

  1. 创建 docker
    终端窗口
    1
    sudo groupadd docker
  2. 添加用户到 docker
    终端窗口
    1
    sudo usermod -aG docker $USER
  3. 激活对组的更改
    终端窗口
    1
    newgrp docker
  4. 验证是否成功
    终端窗口
    1
    docker ps
    输出
    1
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

使用 systemd 配置

终端窗口
1
sudo systemctl enable docker.service
2
sudo systemctl enable containerd.service

JSON 文件日志驱动程序

创建 / 修改 daemon.json

终端窗口
1
sudo vim /etc/docker/daemon.json
/etc/docker/daemon.json
1
{
2
"log-driver": "json-file",
3
"log-opts": {
4
"max-size": "10m",
5
"max-file": "3"
6
}
7
}

重启 Docker 以使设置生效

终端窗口
1
sudo systemctl restart docker

面板

1panel

安装

1Panel 文档 - 在线安装

终端窗口
1
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

反向代理

Nginx

安装

终端窗口
1
sudo apt install nginx

配置文件结构

使用 sites-availablesites-enabled

  • 将所有站点的配置文件放在 /etc/nginx/sites-available/
  • 使用符号链接将启用的站点链接到 /etc/nginx/sites-enabled/

配置文件示例:

每个站点都可以有一个独立的配置文件,如 /etc/nginx/sites-available/example.com

1
server {
2
listen 80;
3
server_name example.com;
4
5
location / {
6
proxy_pass http://localhost:8080; # 将请求转发到你的应用服务器
7
proxy_set_header Host $host;
8
proxy_set_header X-Real-IP $remote_addr;
9
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
10
}
11
}

激活站点配置:

终端窗口
1
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

存放证书位置

/etc/nginx/ssl 下存放证书

终端窗口
1
sudo mkdir -p /etc/nginx/ssl/example.com

确保只有 Nginx 可以读取密钥文件

终端窗口
1
sudo chown -R root:root /etc/nginx/ssl
2
sudo chmod -R 600 /etc/nginx/ssl/example.com/example.com.key

配置 Nginx 代理静态网站

创建网站目录:

确保网站文件存放在一个合适的目录,例如 /var/www/example.com

终端窗口
1
sudo mkdir -p /var/www/example.com
2
sudo chown -R username:www-data /var/www/example.com
3
sudo chmod -R 755 /var/www/example.com

配置 Nginx:

编辑 Nginx 配置文件(例如 /etc/nginx/sites-available/example.com):

1
server {
2
listen 80;
3
server_name example.com;
4
5
root /var/www/example.com;
6
index index.html;
7
8
location / {
9
try_files $uri $uri/ =404;
10
}
11
}

启用网站配置:

创建符号链接到 sites-enabled 并测试配置:

1
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
2
sudo nginx -t

重新加载 Nginx:

使用非 root 用户,通过 sudo 重新加载 Nginx:

终端窗口
1
sudo systemctl reload nginx