基于 ubuntu 系统的 vps 的初始安装
操作步骤#
更新系统#
登录后的首要任务是更新系统。这可以确保所有已安装的软件包都打上了最新的安全补丁。
# 更新软件包列表信息 和 升级所有已安装的软件包
sudo apt update && sudo apt upgrade -y创建新用户并授予管理员权限#
一直使用 root 用户操作服务器是一个非常危险的习惯。任何误操作都可能对系统造成毁灭性打击,并且它也是黑客们最喜欢攻击的目标。因此,我们需要创建一个新的日常使用账户,并赋予它
- 创建一个自定义的新用户
your_userneame,这里可以更改成喜欢的用户名
adduser your_username系统会提示你设置新用户的密码(必须设置)和一些可选的个人信息(可以直接回车跳过)。请务必设置一个强密码。

- **授予
sudo权限:
usermod -aG sudo your_username这条命令将新创建的用户添加到了sudo用户组,使其能够执行管理员命令。
- 验证新用户: 现在重新开一个窗口,然后用你的新用户名重新登录:
ssh your_username@你的服务器IP地址登录后,尝试执行一个需要sudo的命令来验证权限是否生效,比如更新软件包列表:
sudo apt update系统会要求你输入你自己的密码(而不是root密码)。如果命令成功执行,说明权限配置正确。
加固SSH服务,提升安全性#
SSH是我们远程管理服务器的唯一入口,保护好它至关重要。
- 禁用
root用户远程登录: 既然我们已经有了sudo用户,就应该禁止root直接通过SSH登录。 用你喜欢的文本编辑器(如nano或vim)打开SSH配置文件。nano对新手更友好。
#安装nano
apt-get install nano -y
#编辑文件
sudo nano /etc/ssh/sshd_config在文件中找到 PermitRootLogin 这一行,修改为 no:
PermitRootLogin no如果这一行前面有 #,请将 # 删除。
- (强烈推荐) 更改默认 SSH 端口: SSH 默认使用 22 端口,这使得它成为自动化扫描和攻击的首要目标。通过更改端口,可以有效避开大部分的自动攻击。在同一个配置文件 (
/etc/ssh/sshd_config) 中,找到#Port 22这一行。首先去掉#,然后将22改成一个不常用的端口号(范围建议在 1024-65535 之间,例如12345)。
Port 12345注:如何在 nano 中快速查找
nano 编辑器底部有一系列快捷键提示,^ 符号代表 Ctrl 键。
查找/搜索的快捷键是 Ctrl + W (W 代表 “Where is?")。
操作步骤如下:
用 nano 打开文件后 (nano /etc/ssh/sshd_config)。
按下 Ctrl + W。
屏幕底部会出现一个搜索提示 “Search:"。
输入你要查找的文字,比如 PermitRootLogin,然后按回

passwd your_username- 重新加载 systemd 配置 此命令会扫描所有单元文件的变动,让
systemd知道ssh.socket的配置需要根据sshd_config的内容来更新。
systemctl daemon-reload- 重启
ssh.socket这是最关键的一步。此命令会使systemd停止监听旧端口,并开始监听你在sshd_config中指定的新端口。
systemctl restart ssh.socket- 重启
ssh.service为确保所有更改都已生效,最后再重启一下 SSH 服务本身。
systemctl restart ssh.service注意:在 Debian/Ubuntu 等系统中,服务名为 _ssh.service_。如果你尝试 _systemctl restart sshd_,会遇到 _Unit sshd.service not found_ 的错误。
第 3 步:验证端口是否已更改#
使用 ss 或 netstat 命令来检查系统当前正在监听的网络端口。
sudo ss -tlpn | grep ssh如果一切顺利,你应该能看到 SSH 服务现在正在监听你的新端口 12345。
成功的输出示例:
LISTEN 0 4096 *:12345 *:* users:(("sshd",pid=...),("systemd",pid=1,...))第 4 步:配置防火墙(至关重要!)#
防火墙是服务器的第一道防线。UFW (Uncomplicated Firewall) 是一个非常易于使用的防火墙管理工具,使用系统底层的iptables进行设置。
- 安装UFW (通常已预装):
sudo apt install ufw- 设置默认规则: 先禁止所有传入连接,允许所有传出连接。这是一个安全的基准。
sudo ufw default deny incoming
sudo ufw default allow outgoing- 允许必要的连接: 我们需要允许SSH、HTTP和HTTPS的流量进入。
- 如果你没有改SSH端口:
sudo ufw allow ssh # 22端口- 如果你改了SSH端口 (例如
12345):
sudo ufw allow 12345/tcp- 如果你计划部署网站,也需要允许HTTP和HTTPS:
sudo ufw allow http # 80端口
sudo ufw allow https # 443端口- 后续想开放哪个端口就开启哪个端口 (例如
8000):
sudo ufw allow 8000/tcp- 启用防火墙:
sudo ufw enable系统会警告你这可能会中断现有连接,输入y确认。因为我们已经允许了SSH端口,所以连接不会中断。

检查服务的自启状态 (高级)#
你可以直接使用 systemd 命令来检查 ufw 服务是否被设置为开机自启。
sudo systemctl is-enabled ufw如果输出是 enabled,就表示它会开机自启。
第 5 步:测试新连接#
在确认一切正常之前,绝对不要关闭你当前的终端窗口!
- 打开一个新的本地终端。
- 使用
-p参数指定新端口,尝试连接你的服务器。
ssh your_user@your_server_ip -p 12345- 只有在确定新连接可以成功登录后,才能安全地关闭旧的 SSH 会话。
第 6 步:安全加固(可选但推荐)#
确认新端口工作正常后,可以禁用对旧端口 22 的访问规则。
sudo ufw deny 22/tcp安装Fail2ban#
sudo -i
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh
bash fail2ban.shWelcome to Fail2ban!
——————–
This Shell Script can protect your server from SSH attacks with the help of Fail2ban and iptables
Do you want to change your SSH Port? [y/n]: y(你想改SSH端口吗?)
Please input SSH port(Default: 22): 6666(这个随便写)
Input the maximun times for trying [2-10]: 5(尝试几次被封杀)
Input the lasting time for blocking a IP [hours]: 24(被封杀封杀多久)
- 重启服务
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban # 开机自启卸载#
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh
bash uninstall.sh功能
1.自助修改SSH端口
2.自定义最高封禁IP的时间(以小时为单位)
3.自定义SSH尝试连接次数
4.一键完成SSH防止暴力破解
注意:修改SSH端口时先在iptables里把新端口打开
设置系统时间#
将系统时间设置为北京时间,推荐使用 timedatectl 命令。
北京时间的正确时区标识符是 Asia/Shanghai。您看到的错误消息是因为该工具要求使用较旧、不太常见的 POSIX 格式,但现代系统使用 Area/Location 格式。
这是大多数现代 Linux 发行版(如 Ubuntu、Debian、CentOS 和 Fedora)的标准系统范围方法。
- 设置时区
在您的终端中运行以下命令。您可能需要 sudo 权限。
sudo timedatectl set-timezone Asia/Shanghai- 验证更改
您可以通过运行以下任一命令来检查更改是否成功:
timedatectl这将向您显示本地时间、世界标准时间 (UTC) 和当前设置的时区。
或者简单地:
date输出现在应该显示 CST(中国标准时间)和正确的时间。
使用nano一键复制
使用nano一键复制:Shift + 鼠标点击(最推荐的直接方法)#
这是解决您问题的最直接、最简单的方法,适用于大多数现代终端(如 Windows Terminal, iTerm2, GNOME Terminal 等)。
- 点击起点:用鼠标左键在您想复制的文本的开头点击一下。
- 滚动到终点:不要按住鼠标左键,直接使用鼠标滚轮、滚动条或者键盘的
PageDown键,滚动到文件的末尾。 - Shift + 点击终点:按住键盘上的
Shift键,然后用鼠标左键在文本的结尾再点击一下。
神奇的事情发生了!从您第一次点击的起点到第二次 Shift+点击的终点之间的所有内容,无论中间有多少页,都会被完整地选中。
- 复制:现在,使用
Ctrl + Shift + C(Linux/Windows) 或Cmd + C(macOS) 来复制高亮选中的全部内容。
这个技巧不仅适用于 nano,也适用于任何在终端里显示大量文本的场景(比如 cat 一个大文件或者查看日志)。