> For AI agents: the complete documentation index is available at https://docs.vps.town/llms.txt, the full documentation bundle is available at https://docs.vps.town/llms-full.txt.

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

:::tip 温馨提示

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

本文已通过 [VPS.Town 社区文章投稿及奖励规则 (试行稿)](https://docs.vps.town/kb/community.md) 审核，并获得 `现金 25 元` 奖励。

:::

:::details 📖 本文目录

[](#1-网站管理界面)[](#11-已开通产品列表)[](#12-服务器列表界面)[](#13-服务器详情界面)[](#2-远程连接服务器)[](#21-下载-putty)[](#22-添加新主机并配置信息)[](#221-配置地址和端口)[](#222-连接实例)[](#3可选项是否网络重装操作系统)[](#下载-dd-脚本到本地)[](#选择要重装的操作系统)[](#4-修改密码)[](#5-优化-ssh-配置)[](#6-优化内核参数)[](#7-安装常用软件)[](#8-防火墙配置)[](#9-增加历史执行命令记录)[](#10-可选配置)[](#101-禁用检测更新)[](#102-登录提示文字优化)[](#103-安装-fail2ban保护您的服务器)[](#配置规则)[](#重启服务)[](#常用命令)[](#配置详解)
:::

## 1. 网站管理界面

### 1.1 已开通产品列表

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

![服务器管理](/assets/images/vps-town-101-guide/1.png)

在已开通产品列表中，您可以：

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

:::tip 小贴士
建议定期检查服务器状态，确保服务正常运行。
:::

### 1.2 服务器列表界面

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

![服务器列表](/assets/images/vps-town-101-guide/2.png)

在服务器列表界面中，您可以：

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

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

### 1.3 服务器详情界面

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

![管理界面](/assets/images/vps-town-101-guide/3.png)

在服务器详情界面中，您可以：

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

## 2. 远程连接服务器

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

### 2.1 下载 Putty

您可以在 [官方网站](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) 下载 Putty 的客户端。[点此直接下载 Windows 64 位版](https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe)

![putty下载](/assets/images/vps-town-101-guide/4.png)

### 2.2 添加新主机并配置信息

#### 2.2.1 配置地址和端口

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

![配置地址和端口](/assets/images/vps-town-101-guide/5.png)

#### 2.2.2 连接实例

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

![输入用户名、密码](/assets/images/vps-town-101-guide/6.png)

:::tip 使用说明
本文档适用于 Ubuntu 22.04 系统，其他 Linux 发行版可能需要适当调整命令。
:::

## 3.（可选项）是否网络重装操作系统

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

使用 [dd 脚本](https://github.com/bin456789/reinstall) 重装操作系统。

### 下载 dd 脚本到本地

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

### 选择要重装的操作系统

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

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

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

:::details 支持的操作系统列表

```bash
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. 修改密码

:::danger 安全提示

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

:::

```bash
# 切换到 root 用户
sudo -i

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

## 5. 优化 SSH 配置

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

```bash
# 配置系统更新后自动重启
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. 优化内核参数

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

```bash
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. 安装常用软件

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

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

## 8. 防火墙配置

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

```bash
# 安装防火墙工具
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. 增加历史执行命令记录

:::tip 小贴士
此配置将记录所有执行过的命令，方便后续查看和审计。
:::

```bash
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 禁用检测更新

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

```bash
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 登录提示文字优化

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

```bash
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，保护您的服务器

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

#### 配置规则

```bash
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
```

#### 重启服务

```bash
systemctl restart fail2ban
systemctl enable fail2ban
systemctl status fail2ban
```

#### 常用命令

```bash
# 查看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 文件不存在

```bash
# 最小化系统，未启用日志服务，执行以下命令启用
sudo apt-get update
sudo apt-get install rsyslog
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
sudo systemctl status rsyslog
```

###### 防火墙未启用，导致 fail2ban 未实际生效，以下启用防火墙参考

```bash
systemctl restart iptables
systemctl enable iptables
systemctl status iptables
```
