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.pub
1cat path/to/cert.pub | ssh username@remote_host "cat >> ~/.ssh/authorized_keys"
配置 sshd_config
1sudo vim /etc/ssh/sshd_config
1Port 222Port 11408 // 随机一个高位端口3
4PermitRootLogin yes5PermitRootLogin no6
7PasswordAuthentication yes8PasswordAuthentication no9
10PubkeyAuthentication no11PubkeyAuthentication yes
重启 SSH 服务
1sudo systemctl restart ssh
在本地添加 SSH 登录的配置项
1vim ~/.ssh/config
1Host server_name2 User username3 HostName remote_host4 Port remote_port5 IdentitiesOnly yes
Docker
安装 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.service
1sudo systemctl disable docker.service2sudo systemctl disable containerd.service
JSON 文件日志驱动程序
创建 / 修改 daemon.json
1sudo vim /etc/docker/daemon.json
1{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