跳过正文

vps的初始安装

·2619 字·6 分钟
目录

基于 ubuntu 系统的 vps 的初始安装

操作步骤
#

更新系统
#

登录后的首要任务是更新系统。这可以确保所有已安装的软件包都打上了最新的安全补丁。

# 更新软件包列表信息 和 升级所有已安装的软件包
sudo apt update && sudo apt upgrade -y

创建新用户并授予管理员权限
#

一直使用 root 用户操作服务器是一个非常危险的习惯。任何误操作都可能对系统造成毁灭性打击,并且它也是黑客们最喜欢攻击的目标。因此,我们需要创建一个新的日常使用账户,并赋予它

  1. 创建一个自定义的新用户 your_userneame,这里可以更改成喜欢的用户名
adduser your_username

系统会提示你设置新用户的密码(必须设置)和一些可选的个人信息(可以直接回车跳过)。请务必设置一个强密码

PixPin_2025-10-29_16-13-52.jpg
  1. **授予sudo权限:
usermod -aG sudo your_username

这条命令将新创建的用户添加到了sudo用户组,使其能够执行管理员命令。

  1. 验证新用户: 现在重新开一个窗口,然后用你的新用户名重新登录:
ssh your_username@你的服务器IP地址

登录后,尝试执行一个需要sudo的命令来验证权限是否生效,比如更新软件包列表:

sudo apt update

系统会要求你输入你自己的密码(而不是root密码)。如果命令成功执行,说明权限配置正确。

加固SSH服务,提升安全性
#

SSH是我们远程管理服务器的唯一入口,保护好它至关重要。

  1. 禁用root用户远程登录: 既然我们已经有了sudo用户,就应该禁止root直接通过SSH登录。 用你喜欢的文本编辑器(如 nanovim)打开SSH配置文件。nano对新手更友好。
#安装nano
apt-get install nano -y
#编辑文件
sudo nano /etc/ssh/sshd_config

在文件中找到 PermitRootLogin 这一行,修改为 no

PermitRootLogin no

如果这一行前面有 #,请将 # 删除。

  1. (强烈推荐) 更改默认 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,然后按回

PixPin_2025-11-03_19-48-12.jpg
如果保存文件后想修改密码:

passwd your_username
  1. 重新加载 systemd 配置 此命令会扫描所有单元文件的变动,让 systemd 知道 ssh.socket 的配置需要根据 sshd_config 的内容来更新。
systemctl daemon-reload
  1. 重启 ssh.socket 这是最关键的一步。此命令会使 systemd 停止监听旧端口,并开始监听你在 sshd_config 中指定的新端口。
systemctl restart ssh.socket
  1. 重启 ssh.service 为确保所有更改都已生效,最后再重启一下 SSH 服务本身。
systemctl restart ssh.service

注意:在 Debian/Ubuntu 等系统中,服务名为 _ssh.service_。如果你尝试 _systemctl restart sshd_,会遇到 _Unit sshd.service not found_ 的错误。

第 3 步:验证端口是否已更改
#

使用 ssnetstat 命令来检查系统当前正在监听的网络端口。

sudo ss -tlpn | grep ssh

如果一切顺利,你应该能看到 SSH 服务现在正在监听你的新端口 12345

成功的输出示例:

LISTEN 0      4096               *:12345            *:*    users:(("sshd",pid=...),("systemd",pid=1,...))

第 4 步:配置防火墙(至关重要!)
#

防火墙是服务器的第一道防线。UFW (Uncomplicated Firewall) 是一个非常易于使用的防火墙管理工具,使用系统底层的iptables进行设置。

  1. 安装UFW (通常已预装):
sudo apt install ufw
  1. 设置默认规则: 先禁止所有传入连接,允许所有传出连接。这是一个安全的基准。
sudo ufw default deny incoming
sudo ufw default allow outgoing
  1. 允许必要的连接: 我们需要允许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
  1. 启用防火墙:
sudo ufw enable

系统会警告你这可能会中断现有连接,输入y确认。因为我们已经允许了SSH端口,所以连接不会中断。

检查服务的自启状态 (高级)
#

你可以直接使用 systemd 命令来检查 ufw 服务是否被设置为开机自启。

sudo systemctl is-enabled ufw

如果输出是 enabled,就表示它会开机自启。

第 5 步:测试新连接
#

在确认一切正常之前,绝对不要关闭你当前的终端窗口!

  1. 打开一个新的本地终端。
  2. 使用 -p 参数指定新端口,尝试连接你的服务器。
ssh your_user@your_server_ip -p 12345
  1. 只有在确定新连接可以成功登录后,才能安全地关闭旧的 SSH 会话。

第 6 步:安全加固(可选但推荐)
#

确认新端口工作正常后,可以禁用对旧端口 22 的访问规则。

sudo ufw deny 22/tcp

安装Fail2ban
#

sudo -i
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh
bash fail2ban.sh

Welcome 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(被封杀封杀多久)

  1. 重启服务
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)的标准系统范围方法。

  1. 设置时区

在您的终端中运行以下命令。您可能需要 sudo 权限。

sudo timedatectl set-timezone Asia/Shanghai
  1. 验证更改

您可以通过运行以下任一命令来检查更改是否成功:

timedatectl

这将向您显示本地时间、世界标准时间 (UTC) 和当前设置的时区。

或者简单地:

date

输出现在应该显示 CST(中国标准时间)和正确的时间。

使用nano一键复制

使用nano一键复制:Shift + 鼠标点击(最推荐的直接方法)
#

这是解决您问题的最直接、最简单的方法,适用于大多数现代终端(如 Windows Terminal, iTerm2, GNOME Terminal 等)。

  1. 点击起点:用鼠标左键在您想复制的文本的开头点击一下。
  2. 滚动到终点不要按住鼠标左键,直接使用鼠标滚轮、滚动条或者键盘的 PageDown 键,滚动到文件的末尾
  3. Shift + 点击终点:按住键盘上的 Shift 键,然后用鼠标左键在文本的结尾再点击一下。

神奇的事情发生了!从您第一次点击的起点到第二次 Shift+点击的终点之间的所有内容,无论中间有多少页,都会被完整地选中。

  1. 复制:现在,使用 Ctrl + Shift + C (Linux/Windows) 或 Cmd + C (macOS) 来复制高亮选中的全部内容。

这个技巧不仅适用于 nano,也适用于任何在终端里显示大量文本的场景(比如 cat 一个大文件或者查看日志)。