VPS.Town 服务器新手入门保姆级教程

温馨提示

本文由用户 biebiele 撰写,并已加入 VPS.Town 优秀原创文章激励计划,本站享有完整版权,未经允许不得转载。

本文已通过 VPS.Town 社区文章投稿及奖励规则 (试行稿) 审核,并获得 现金 25 元 奖励。

📖 本文目录

1. 网站管理界面

1.1 已开通产品列表

购买产品之后,可在个人中心-已开通产品内看到购买的服务器。如下图:

服务器管理

在已开通产品列表中,您可以:

  • 查看所有已购买的服务器
  • 查看每个服务器的基本信息(如服务器名称、状态等)
  • 通过操作按钮进入具体服务器的管理界面
小贴士

建议定期检查服务器状态,确保服务正常运行。

1.2 服务器列表界面

点击进入管理界面,其中有 IP 信息、管理,如下图:

服务器列表

在服务器列表界面中,您可以:

  • 查看服务器的 IP 地址信息(点击后可看到具体的 IPv6 地址
  • 查看服务器的运行状态
  • 进行服务器的基本操作(如重启、关机等)
  • 查看服务器的配置信息
警告

进行服务器重启或关机操作前,请确保已保存所有重要数据。

1.3 服务器详情界面

点击操作按钮,进入具体服务器管理页面,如下图,主要有以下关键信息:

管理界面

在服务器详情界面中,您可以:

  • 查看服务器的详细配置信息
  • 进行服务器的各项管理操作
  • 查看服务器的使用统计信息
  • 管理服务器的安全组设置
  • 查看服务器的监控信息

2. 远程连接服务器

初始安装时,默认是支持使用用户名、密码的 SSH 连接,以下以 Putty 工具为例:

2.1 下载 Putty

您可以在 官方网站 下载 Putty 的客户端。点此直接下载 Windows 64 位版

putty下载

2.2 添加新主机并配置信息

2.2.1 配置地址和端口

在 session 页填写服务器IP 地址、端口

配置地址和端口

2.2.2 连接实例

点击 Open 按钮连接到实例。如果是第一次连接到实例,可能会看到对于密钥的验证信息。点击 Accept 按钮确认连接即可。连接成功后,会提示你输入用户名、密码,校验成功后进入控制台。即可开始 linux 管理。

输入用户名、密码

使用说明

本文档适用于 Ubuntu 22.04 系统,其他 Linux 发行版可能需要适当调整命令。

3.(可选项)是否网络重装操作系统

提示

这是一个可选步骤,仅在您需要更换默认操作系统时使用。

使用 dd 脚本 重装操作系统。

下载 dd 脚本到本地

# 使用 curl 或 wget 下载 reinstall.sh 脚本
# -O: 将下载的文件保存为指定名称
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O reinstall.sh $_

选择要重装的操作系统

以下示例为重装为 Ubuntu 22.04 最小化版本:

# 执行重装脚本
# ubuntu: 目标操作系统
# 22.04: 版本号
# --minimal: 最小化安装,只安装基本系统
bash reinstall.sh ubuntu 22.04 --minimal

执行后,会提示输入重装后的密码,命令执行完成后,输入 reboot 重启操作系统,等待约 5-10 分钟后,使用 SSH 工具重新连接服务器。

支持的操作系统列表
bash reinstall.sh anolis      7|8|23
                  opencloudos 8|9|23
                  rocky       8|9
                  redhat      8|9   --img="http://xxx.com/xxx.qcow2"
                  oracle      8|9
                  almalinux   8|9
                  centos      9|10
                  fedora      40|41
                  nixos       24.11
                  debian      9|10|11|12
                  opensuse    15.6|tumbleweed
                  alpine      3.18|3.19|3.20|3.21
                  openeuler   20.03|22.03|24.03|25.03
                  ubuntu      16.04|18.04|20.04|22.04|24.04|24.10 [--minimal]
                  kali
                  arch
                  gentoo
                  aosc
                  fnos

4. 修改密码

安全提示

请确保使用强密码,并妥善保管。

# 切换到 root 用户
sudo -i

# 修改 root 用户密码
# root:<password>: 设置 root 用户的密码
# chpasswd: 批量修改用户密码的命令
echo root:<password> |sudo chpasswd root

5. 优化 SSH 配置

配置说明

以下配置将优化 SSH 连接的安全性和性能。

# 配置系统更新后自动重启
sudo sed -i "s/^#\?\$nrconf{restart}.*/\$nrconf{restart} = \'a\';/g" /etc/needrestart/needrestart.conf;

# 删除可能冲突的 SSH 配置文件
rm -rf /etc/ssh/sshd_config.d/*.conf

# 修改 SSH 配置
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;  # 启用 root 登录
sudo sed -i 's/^#\?Port.*/Port 3022/g' /etc/ssh/sshd_config;                     # 修改默认端口为 3022
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;  # 启用密码认证
sudo sed -i 's/^#\?UseDNS.*/UseDNS no/g' /etc/ssh/sshd_config;                   # 禁用 DNS 反向解析
sudo sed -i 's/^#\?GSSAPIAuthentication.*/GSSAPIAuthentication no/g' /etc/ssh/sshd_config;  # 禁用 GSSAPI 认证
sudo sed -i 's/^#\?ClientAliveInterval.*/ClientAliveInterval 60/g' /etc/ssh/sshd_config;    # 设置客户端活动检测间隔
sudo sed -i 's/^#\?ClientAliveCountMax.*/ClientAliveCountMax 10/g' /etc/ssh/sshd_config;    # 设置客户端活动检测最大次数
sudo sed -i 's/^#\?X11Forwarding.*/X11Forwarding no/g' /etc/ssh/sshd_config;                # 禁用 X11 转发

# 修改 systemd socket 配置
sudo sed -i 's/^#\?ListenStream.*/ListenStream=3022/g' /usr/lib/systemd/system/ssh.socket;

# 重启 SSH 服务
service sshd restart
systemctl daemon-reload
systemctl restart ssh.socket

6. 优化内核参数

性能优化

以下配置将优化网络性能和连接稳定性。

tee -a /etc/sysctl.conf << EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
net.ipv4.tcp_available_congestion_control=cubic bbr
net.ipv4.tcp_fastopen=3
net.ipv4.tcp_keepalive_time=600
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_keepalive_probes=5
net.ipv4.tcp_rmem=8192 262144 536870912
net.ipv4.tcp_wmem=4096 16384 536870912
EOF

# 应用配置
sysctl -p

7. 安装常用软件

# 设置时区
sudo timedatectl set-timezone Asia/Shanghai

# 更新软件包列表并安装常用工具
apt update
apt install wget net-tools telnet fail2ban cron zip -y

8. 防火墙配置

警告

配置防火墙前请确保已保存当前 SSH 连接,避免配置错误导致无法连接。

# 安装防火墙工具
sudo apt-get install iptables-persistent

# 配置防火墙持久化,防止重启后失效
sudo echo -e "# CLOUD_IMG: This file was created/modified by the Cloud Image build process\nIPTABLES_RESTORE_NOFLUSH=no\nIP6TABLES_RESTORE_NOFLUSH=no" > /etc/default/netfilter-persistent
sudo iptables-save | awk '{if($1=="COMMIT"){delete x}}$1=="-A"?!x[$0]++:1' | sudo iptables-restore
sudo netfilter-persistent save
sudo netfilter-persistent reload

# 清除现有规则
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo iptables -X
sudo iptables -Z

# 配置基本规则
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# 开放必要端口
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8001:9999 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 8001:9999 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3022 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 3022 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 5700 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 5700 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 7000 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 7000 -j ACCEPT

# 允许 ICMP (ping)
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT

# 配置端口转发
iptables -t nat -A PREROUTING -p udp --dport 8001:9999 -j REDIRECT --to-ports 443
iptables -t nat -L PREROUTING -v -n

# 保存并应用配置
sudo iptables -L -v -n
sudo netfilter-persistent save
service iptables restart

9. 增加历史执行命令记录

小贴士

此配置将记录所有执行过的命令,方便后续查看和审计。

sudo bash -c 'cat >> /etc/profile <<EOF
# 配置历史记录的时间格式
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "

# 设置保存历史记录的文件路径
HISTORY_FILE="\$HOME/command_history.log"

# 自定义命令日志函数
log_command() {
    local HISTFILE_PATH=\$HISTFILE
    local HIST_ENTRY_NUMBER=\$1
    local HIST_ENTRY="\$(history \$HIST_ENTRY_NUMBER | tail -n 1)"
    local CURRENT_USER=\$(whoami)
    local LOG_ENTRY="[USER: \$CURRENT_USER] \$HIST_ENTRY"

    echo "\$LOG_ENTRY" >> \$HISTORY_FILE
}

# 在每个命令之后,将命令追加到自定义的日志文件中,同时同步到 HISTFILE
PROMPT_COMMAND="history -a; log_command 1"
ulimit -SHn 1000000
EOF'

# 应用配置
source /etc/profile

10. 可选配置

10.1 禁用检测更新

警告

此配置适用于不需要自动更新的环境。

sudo bash -c 'cat > /etc/apt/apt.conf.d/10periodic <<EOF
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
EOF'

sudo bash -c 'cat > /etc/apt/apt.conf.d/20auto-upgrades <<EOF
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
EOF'

10.2 登录提示文字优化

简单提示

此配置将优化登录时的提示信息显示。

sudo sed -i 's/^#\?ENABLED=.*/ENABLED=0/g' /etc/default/motd-news;
touch /var/lib/ubuntu-advantage/hide-esm-in-motd
touch /var/lib/update-notifier/hide-esm-in-motd
rm -rf /var/lib/update-notifier/updates-available
chmod -x /etc/update-motd.d/90-updates-available
sudo rm /var/lib/ubuntu-release-upgrader/release-upgrade-available
sudo sed -i 's/^#\?Prompt.*/Prompt=never/g' /etc/update-manager/release-upgrades;

10.3 安装 fail2ban,保护您的服务器

apt update
apt install wget net-tools telnet -y
apt install fail2ban -y

配置规则

cat > /etc/fail2ban/jail.local <<EOF
# 默认规则
[DEFAULT]
# 白名单,不受规则限制,以下规则为每60秒错误2次,永久封禁,限制访问所有端口
ignoreip = 127.0.0.1/8 ::1 223.104.0.0/16
findtime = 60s
maxretry = 2
bantime = -1
action = iptables-allports

# sshd拦截规则,注意端口填写,默认为22
[sshd]
enabled  = true
port    = 22
logpath = /var/log/auth.log

EOF

重启服务

systemctl restart fail2ban
systemctl enable fail2ban
systemctl status fail2ban

常用命令

# 查看fail2ban状态
fail2ban-client status

# 查看sshd jail状态
fail2ban-client status sshd

# 解封IP
fail2ban-client set sshd unbanip IP地址

# 查看被封禁的IP列表
fail2ban-client banned

配置详解

主配置文件

Fail2Ban 的主配置文件是/etc/fail2ban/fail2ban.conf,建议创建副本/etc/fail2ban/fail2ban.local进行修改。

封禁配置
  • bantime: 封禁时间长度,单位可以是 m(分钟)、d(天)或 s(秒)
  • findtime: 计算登录失败的时间窗口
  • maxretry: 最大失败尝试次数
  • ignoreip: 白名单 IP,多个 IP 用空格分隔
  • action: 封禁时采取的动作
    • action_: 默认动作,拒绝流量
    • action_mw: 封禁并发送邮件通知
    • action_mwl: 封禁并发送邮件通知,包含相关日志
    • action_xarf: 封禁并发送 XARF 格式邮件
注意事项
  1. 如果 SSH 使用密钥登录并禁用密码登录,则不需要 Fail2Ban 保护
  2. 修改配置后需要重启 fail2ban 服务才能生效
  3. 建议将常用 IP 加入白名单,避免误封
  4. 封禁时间设置要合理,避免影响正常用户
常见问题
启动服务报错,提示/var/log/auth.log 文件不存在
# 最小化系统,未启用日志服务,执行以下命令启用
sudo apt-get update
sudo apt-get install rsyslog
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
sudo systemctl status rsyslog
防火墙未启用,导致 fail2ban 未实际生效,以下启用防火墙参考
systemctl restart iptables
systemctl enable iptables
systemctl status iptables