新开机一台服务器之后应该做什么
20

新开机一台服务器之后应该做什么

本文绝大部分内容参考自 新开机一台 Linux 服务器之后应该做的 N 件事保护好你的小鸡!保姆级服务器安全教程! 并结合本人的实践对一些内容进行增改。

Step 一. ip及服务器测评

  1. 对于非大陆服务器,建议先通过ITDOG测试其 IP 的在线 Ping 值,以检查是否能够连通目标主机,并评估网络延迟与整体连接质量。

  2. 使用SSH连接服务器,运行服务器测评脚本

    ①.融合怪测评脚本

功能

一键命令(!一键命令将默认不安装依赖,默认不更新包管理器,默认非互动模式

国际用户无加速:

export noninteractive=true && curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh install && goecs

国际/国内使用 CDN 加速:

export noninteractive=true && curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh install && goecs

国内用户使用 CNB 加速

export noninteractive=true && curl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh install && goecs

Step 二. 添加服务器到哪吒探针

*可选,如果有多台服务器强烈推荐

哪吒探针是一款开源、轻量、易用的服务器监控工具,支持多服务器状态监控、网页/端口/SSL 证书检测,并提供历史延迟图表和故障告警,可通过 Telegram、邮件、微信等方式通知。

Step 三~ Step N. 开始折腾

安全相关

正如我们所知,任何人只需要知道【IP 地址】+【端口】+【用户名】+【密码】这四个要素,就能登录你的 VPS 服务器。那很显然,这四要素的安全就是我们要防护的底线。我们来逐一分析:

【IP 地址】:恶意脚本会随机尝试和扫描 IP 段,可以简单认为是公开信息、无法隐藏

【端口】:如果使用默认端口,那么【端口 = 22】

【用户名】:如果使用默认用户,那么【用户名 = root】

【密码】:密码不存在默认值,一定是由 VPS 后台随机生成或由你自行设置的。也就是说,如果你的服务器都是默认设置,则四要素中的三个已经是已知的,那么你整个服务器的安全,就全部寄托在一串小小的密码上了。

DD 纯净系统(可选)

大厂公有云一般都会在服务器系统镜像中添加监控进程,不仅会记录用户行为,还会导致额外的内存和性能占用(例如腾讯云会在实例上安装主机安全客户端和自动化助手)。此外,厂商提供的标准系统镜像,不一定有我们需要的。

DD 系统涉及的操作十分复杂,所以我这里推荐使用一键脚本

  1. NodeSeek 上的一键重装脚本
  2. Debian 网络重装脚本(仅支持Debian)
  3. 科技lion一键脚本

更新安装包的索引和软件

任何涉及到安装的操作之前,先更新一下我们安装包的索引,可以的话,顺便更新一下软件。这本身也是安全的一部分,新的软件意味着更少的漏洞。

apt update          # 更新软件包索引
apt upgrade      # 升级已安装的软件

修改默认 22 端口

nano编辑器的基本用法

nano 文件名:编辑文件
Ctrl+O + 回车:保存
Ctrl+X:退出
Ctrl+K / Ctrl+U:剪切 / 粘贴行
Ctrl+W:搜索

1.使用nano编辑器修改 /etc/ssh/sshd_config 文件

nano /etc/ssh/sshd_config

2.找到文件中的 Port 22(注意千万不要先删除或注释掉该代码)
3.在下面添加 Port 要修改的端口号,保存文件
4.确认防火墙或控制面板安全组放行端口
5.使用 systemctl restart sshd 命令重启 sshd 服务,或者使用 reboot 命令直接重启服务器

systemctl restart sshd
或
reboot

6.如果使用新端口登录成功,则此时可以删除或注释掉原来的端口

注意:为了保证你不会失联,请不要关闭当前的ssh登录窗口!而是另外开一个窗口来测试!

使用复杂的密码

如果你想给当前的用户设置重新设置一个密码,那么可以到1password,生成一个复杂的密码,当作你服务器的密码。

passwd

新建普通用户

新增一个用户并设定登录密码

adduser username

username 替换为你想要的用户名(例如 alice)。

执行命令后,根据提示操作即可。请务必设置一个用户密码(别忘记设置密码时你时看不到 ****** 的)。之后系统会询问你一些用户的附加信息,这些就可以无视,一路回车即可。

安装sudo功能

apt update && apt install sudo  #更新包索引并安装 sudo

把username用户加入sudo名单里,让他有资格借用root的神力

visudo

在 User Privilege Specification 下加入一行 username ALL=(ALL) NOPASSWD: ALL 即可

注:NOPASSWD这个设置,它的意思是vpsadmin用户临时使用root权限时,不用额外输入密码。

如果你希望遵守传统习惯、每次使用sudo时需要输入密码,那么这一行改成 username ALL=(ALL:ALL) ALL 即可。

禁止root登陆

注:如果你想使用腾讯云或阿里云控制台提供的远程连接功能,并允许 root 登录,务必至少采取以下安全措施之一:

使用高强度的复杂密码,并定期更换;

推荐使用 SSH 密钥登录;

在不需要通过 SSH 连接服务器时,通过防火墙临时禁用 SSH 端口(默认 22 端口),以减少暴露风险。

1.使用nano编辑器修改/etc/ssh/sshd_config 文件

nano /etc/ssh/sshd_config

2.找到PermitRootLogin Yes这一项,然后把它后面的设定值改为no即可。

注:

配置值 含义
yes 允许 root 使用任何方式登录(包括密码)
no 完全禁止 root 登录
prohibit-password / without-password 允许 root 登录,但仅限密钥等非密码方式

3.重启 ssh 服务,让变更生效。

sudo service sshd restart

注意:为了保证你不会失联,请不要关闭当前的ssh登录窗口!而是另外开一个窗口来测试

4.下次通过远程登录,root用户已无法连接。

ssh 用户名@你的服务器IP -p 端口

使用密钥登录

本文以 RSA 密钥举例,是因为 RSA 密钥在各种设备、各种 SSH 客户端中有广泛悠久的支持历史,且目前依然能提供够用的安全性。但它绝非唯一选择。

其他的常见密钥还有:

**·**DSA - 已经从数学层面被证明不安全,所以永远不要用它

**·**ECDSA - 密钥小安全性高,但其算法被指留有 NSA 的后门,如果你的 VPS 上有值得 NSA 关注的东西就不要用它

**·**Ed25519 - 这是一个与 ECDSA 十分类似的算法,故具有相似的性能优势。同时其文档全部公开,所以普遍认为无后门

所以,如果你的设备和软件都支持的话,我建议优先选择 Ed25519 密钥。

1.打开本地终端(Windows 可用 PowerShell 或 WSL):

# ssh-keygen -t rsa -b 4096 -C "<CLIENT-NAME>"
ssh-keygen -t rsa -b 4096 -C "myvps"

注:

①.-t rsa -b 4096:密钥算法(若系统支持,推荐用 -t ed25519)
②.-C:添加注释(可选,通常写邮箱或用途)

③.运行命令后生成

  • id_rsa:生成的私钥,保留在电脑即可。
  • id_rsa.pub:生成的公钥,打开后,复制内容,后文部署到服务器上。

.ssh 是隐藏目录,在文件管理器中可能需要开启“显示隐藏文件”才能看到,默认 .ssh 路径 C:\Users\<用户名>\.ssh

2.在服务器上先在家目录下,创建一个.ssh的文件夹

mkdir -p ~/.ssh

3.之后,进入.ssh文件夹内,并使用nano创建并编辑authorized_keys文件:

cd ~/.ssh # 进入当前用户的 .ssh 目录
nano authorized_keys # 使用 nano 创建并编辑 authorized_keys 文件

4.粘贴公钥(id_rsa.pub)即可并保存并退出

5.修改 authorized_keys 文件权限为 600 (仅所有者可读可写)

chmod 600 ~/.ssh/authorized_keys

6.编辑ssh配置文件

sudo nano /etc/ssh/sshd_config #搜索PasswordAuthentication,把yes改成no

安装UFW防火墙

如果你用大厂的服务器,在控制面板里的防火墙设计及可

1.设置ufw使用默认值

sudo ufw default deny incoming
sudo ufw default allow outgoing

2.允许SSH连接

sudo ufw allow 端口/tcp comment 'SSH'

3.允许http连接

sudo ufw allow http

4.允许https连接

sudo ufw allow https

5.启动ufw防火墙

sudo ufw enable

6.查看ufw防火墙状态

sudo ufw status

7.如何删除一条规则

①用于查看UFW防火墙当前规则列表,并为每条规则显示编号。

sudo ufw status numbered

②删除一条规则

sudo ufw delete 对端口的编号

8.重载配置

sudo ufw reload

禁止Ping

sudo nano /etc/ufw/before.rules

搜索:echo-request,把ACCEPT改成DROP

屏幕截图 2025-12-20 155938.png

禁止暴力破解

1.安装Fail2ban

sudo apt update && sudo apt install fail2ban

2.复制一份配置文件

cd /etc/fail2ban # 进入fail2ban目录
sudo cp fail2ban.conf fail2ban.local  # 复制一份配置文件

3.打开刚才复制配置文件

cd /etc/fail2ban # 进入fail2ban目录(如果还没进入fail2ban目录)
sudo nano fail2ban.local # 打开fail2ban.local

4.加入一个配置

[sshd]
enable = true
port = 9753   # 注意改成自己对应的端口
filter =sshd
logpath = /var/log/auth.log
maxretry = 3 # 失败登录超过 3 次,就会被封禁
bantime = -1 #  封禁时间(单位:秒)-1 表示 永久封禁 600 → 封 10 分钟  86400 → 封 1 天

屏幕截图 2025-12-20 161716.png

系统优化相关

创建 Swap 分区

输入命令即可执行一键脚本

wget https://www.superbin.cc/Shell/swap.sh && bash swap.sh

或参考这编文章 Swap分区

如果机器硬盘经常用不满,可以这样设置RAM ≤ 2GB,Swap 设置 4GB,RAM > 2GB,Swap 设置 8GB。

或参考Red Hat 官方给出的配置建议

屏幕截图 2025-12-20 162802.png

修改 TCP 拥塞控制算法为 BBR

网上有不少「一键开启 BBR」的脚本,但是有些脚本可能会涉及到修改内核。这里提供一种无需修改内核开启 BBR 的方法 (要求 KVM 虚拟化且 Linux 内核高于 4.9)

#内核版本高于 4.9 就行。
uname -r  
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
#执行下面命令,如果结果中带有bbr,则证明你的内核已开启bbr。
sysctl net.ipv4.tcp_available_congestion_control
新开机一台服务器之后应该做什么
http://siguali.online/archives/xin-kai-ji-yi-tai-fu-wu-qi-zhi-hou-ying-gai-zuo-shi-me
作者
Administrator
发布于
更新于
许可