Linux 服务器管理(以 Debian12 为例)
更新系统与软件包
- 更新软件包索引
终端窗口 1sudo apt update - 升级已安装的软件包
终端窗口 1sudo apt upgrade -y - 安装常用软件包
终端窗口 1sudo apt install \2net-tools \3htop \4lsof \5curl \6wget \7vim \8git \9exa -y
用户、组和权限管理
用户管理
若无 sudo 包先装 sudo
1apt install sudo -y创建新用户
1sudo adduser <username>授予 sudo 权限
1usermod -aG sudo <username>切换到新用户
1su - <username>新用户创建 .ssh 目录并设置权限
1mkdir -p ~/.ssh2chmod 700 ~/.ssh创建 authorized_keys 文件并设置权限
1touch ~/.ssh/authorized_keys2chmod 600 ~/.ssh/authorized_keys定期检查
用户和组管理:
- 列出用户:
cat /etc/passwd - 列出组:
cat /etc/group
SSH
上传 SSH 公钥到服务器
1ssh-copy-id -i path/to/cert.pub -p port username@remote_host复制公钥文件到服务器
1scp path/to/cert.pub username@remote_host:/tmp/mykey.pub在服务器上设置公钥
1cat /tmp/mykey.pub >> ~/.ssh/authorized_keys2rm /tmp/mykey.pub1cat path/to/cert.pub | ssh username@remote_host "cat >> ~/.ssh/authorized_keys"配置 sshd_config
1sudo vim /etc/ssh/sshd_config1Port 222Port 11408 // 随机一个高位端口3
4PermitRootLogin yes5PermitRootLogin no6
7PasswordAuthentication yes8PasswordAuthentication no9
10PubkeyAuthentication no11PubkeyAuthentication yes重启 SSH 服务
1sudo systemctl restart ssh在本地添加 SSH 登录的配置项
1vim ~/.ssh/config1Host server_name2 User username3 HostName remote_host4 Port remote_port5 IdentitiesOnly yesDocker
安装 docker engine
官方文档教程:Docker Engine - Install - Debian
使用 apt 安装
- 配置 Docker 的
apt仓库终端窗口 1# Add Docker's official GPG key:2sudo apt-get update3sudo apt-get install ca-certificates curl4sudo install -m 0755 -d /etc/apt/keyrings5sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc6sudo chmod a+r /etc/apt/keyrings/docker.asc78# Add the repository to Apt sources:9echo \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" | \12sudo tee /etc/apt/sources.list.d/docker.list > /dev/null13sudo apt-get update - 安装 Docker 软件包
终端窗口 1sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - 验证安装
终端窗口 1sudo docker --version
安装后要进行的操作
官方文档教程:Docker Engine - Install - Linux-postinstall
非 root 用户管理 Docker
- 创建
docker组终端窗口 1sudo groupadd docker - 添加用户到
docker组终端窗口 1sudo usermod -aG docker $USER - 激活对组的更改
终端窗口 1newgrp docker - 验证是否成功
终端窗口 1docker ps输出 1CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
使用 systemd 配置
1sudo systemctl enable docker.service2sudo systemctl enable containerd.service1sudo systemctl disable docker.service2sudo systemctl disable containerd.serviceJSON 文件日志驱动程序
创建 / 修改 daemon.json
1sudo vim /etc/docker/daemon.json1{2 "log-driver": "json-file",3 "log-opts": {4 "max-size": "10m",5 "max-file": "3"6 }7}重启 Docker 以使设置生效
1sudo systemctl restart docker面板
1panel
安装
1curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh反向代理
Nginx
安装
1sudo apt install nginx配置文件结构
使用 sites-available 和 sites-enabled:
- 将所有站点的配置文件放在
/etc/nginx/sites-available/。 - 使用符号链接将启用的站点链接到
/etc/nginx/sites-enabled/。
配置文件示例:
每个站点都可以有一个独立的配置文件,如 /etc/nginx/sites-available/example.com。
1server {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}激活站点配置:
1sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/存放证书位置
在 /etc/nginx/ssl 下存放证书
1sudo mkdir -p /etc/nginx/ssl/example.com确保只有 Nginx 可以读取密钥文件
1sudo chown -R root:root /etc/nginx/ssl2sudo chmod -R 600 /etc/nginx/ssl/example.com/example.com.key配置 Nginx 代理静态网站
创建网站目录:
确保网站文件存放在一个合适的目录,例如 /var/www/example.com。
1sudo mkdir -p /var/www/example.com2sudo chown -R username:www-data /var/www/example.com3sudo chmod -R 755 /var/www/example.com配置 Nginx:
编辑 Nginx 配置文件(例如 /etc/nginx/sites-available/example.com):
1server {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 并测试配置:
1sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/2sudo nginx -t重新加载 Nginx:
使用非 root 用户,通过 sudo 重新加载 Nginx:
1sudo systemctl reload nginx