Skip to content
lavie blog

服务器设置

Published:
Estimated reading time:6 min read

本文提供了一份详尽的新服务器初始化指南,旨在帮助您快速构建一个安全、高效的运行环境,内容涵盖系统更新、防火墙加固、SSH 安全优化、BBR 性能加速以及 Docker 容器环境的快速部署。

一、基础设置

1.更新软件包

sudo apt update

2.安装常用软件包

sudo apt install curl wget vim

3.开启防火墙ufw

  • 安装ufw
sudo apt install ufw

在启用 UFW 之前,一定要先开放ssh端口,否则可能无法ssh连接服务器

  • 开放常用端口
# 开放ssh端口
sudo ufw allow 22/tcp
# 开放常用端口
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
  • 启用 UFW
sudo ufw enable
  • 检查状态
sudo ufw status verbose

二、修改ssh端口

1.开放新的ssh端口

# 假设新端口是 2222
sudo ufw allow 2222/tcp

2.修改配置文件

sudo nano /etc/ssh/sshd_config

在文件中找到这一行:

#Port 22

将其修改为新端口:去掉 # 注释符,并更改端口号

Port 2222

3.重启 SSH 服务

sudo systemctl restart ssh

4.检查新端口是否设置成功(重要)

保持当前的 SSH 窗口不要关闭! 打开一个新的本地终端窗口,尝试使用新端口登录服务器:

  • 如果登录成功: 可以选择执行第 5 步。
  • 如果登录失败: 不要关闭旧 SSH 窗口! 检查配置文件和防火墙规则是否有误,然后重新尝试。

5.关闭22端口(可选)

确认新端口可以进行ssh连接后,可以关闭22端口,提高安全性。

# 删除名为 "ssh" 的规则
sudo ufw delete allow ssh
# 或者按端口号删除
sudo ufw delete allow 22/tcp

三、密钥登录

1.创建密钥

在本地电脑上运行 ssh-keygen 命令生成密钥对:

ssh-keygen -t ed25519 -f /path/to/your/keyfile_name

会在指定目录生成两个文件,例如:

  • id_ed25519 (私钥 - 绝不能泄露给任何人)
  • id_ed25519.pub (公钥 - 这个是我们要上传到服务器的)

2.复制公钥到服务器

使用 ssh-copy-id 命令

# 替换 [公钥路径] [端口号]、[用户名] 和 [服务器IP]
ssh-copy-id -i [公钥路径] -p [端口号] [用户名]@[服务器IP]

系统会提示输入服务器的当前密码。 输入密码后,会自动将公钥内容追加到服务器上 ~/.ssh/authorized_keys 文件的末尾,并设置正确的文件权限。

3.测试密钥登录

不要关闭当前的 SSH 窗口!

打开一个新的本地终端窗口。

ssh -p [端口号] [用户名]@[服务器IP]

验证:如果系统仍然提示输入 “password” ,说明操作失败了,检查上述步骤是否正确执行。

4.禁用密码登录

只有在确认密钥登录成功后,才能执行此步骤!

编辑 sshd_config 文件:

sudo nano /etc/ssh/sshd_config

找到并修改以下几行 (确保去掉了行首的 # 注释):

# 确保公钥认证是开启的 (通常默认开启)
PubkeyAuthentication yes

# 禁用密码登录
PasswordAuthentication no

# 禁用 "challenge-response" 认证,它也可能允许密码
ChallengeResponseAuthentication no

# (可选) 如果您只允许密钥登录,可以禁用 PAM
UsePAM no

重启 SSH 服务:

sudo systemctl restart ssh

5.最终验证

打开新的终端窗口,尝试再次登录:

ssh -p [端口号] [用户名]@[服务器IP]

应该只能密钥登录。

尝试强制使用密码登录,看看是否会被拒绝:


ssh -o PubkeyAuthentication=no -p [端口号] [用户名]@[服务器IP]

此时,它应该会提示输入密码,但无论您输入什么(即使是正确的密码),它最终都会显示 “Permission denied (publickey,password)” 或类似信息,确认密码登录已被彻底禁用。

四、拥塞控制算法

  • 确认内核版本支持 BBR(需要 4.9+):
uname -r
  • 开启BBR
sudo sh -c 'cat > /etc/sysctl.d/yuju-bbr.conf << EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF' && sudo sysctl -p /etc/sysctl.d/yuju-bbr.conf
  • 查看配置是否生效
# 查看当前使用的拥塞控制算法
sysctl net.ipv4.tcp_congestion_control
# 查看系统支持的所有拥塞控制算法
sysctl net.ipv4.tcp_available_congestion_control
# 查看默认的队列调度器
sysctl net.core.default_qdisc
# 检查BBR模块是否加载
lsmod | grep bbr

五、安装docker和docker compose

Docker 从 18.06.0-ce 版本开始自带 Docker Compose,因此,只需要安装docker。

  • 安装命令
wget -qO- get.docker.com | bash
  • 开机自启
sudo systemctl enable docker
  • 检查是否安装成功
docker -v
docker compose version
  • 卸载命令
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo apt-get remove docker docker-engine
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd