前言
当你想让多个用户同时使用同一台 VPS,却不希望大家共用同一个账号时,就需要配置多人共享访问。听起来复杂,其实只需掌握几个关键步骤——虚拟网络接口设置、SSH/FTP 权限分配、虚拟主机隔离,就能安全、稳定地实现多人共用一台 VPS。本文将提供一份完整操作指南,适合 Linux 零基础用户跟着做。
一、配置前的准备工作
在动手之前,请确保你拥有:
- sudo 权限:需要 root 或具有 sudo 权限的账号来修改系统配置
- VPS 资源清单:记录操作系统版本、内存大小、硬盘空间等
- 每个用户的账号密码:提前创建好独立的用户账户
小提示:如果你是第一次操作,建议先在测试环境中演练一遍,确认无误后再应用到正式环境。
二、创建虚拟网络接口(核心步骤)
VPS 多人共享的关键之一,是为每个用户分配独立的虚拟网络接口。这样不同用户的流量可以分别管理,不会相互干扰。
操作步骤如下:
第一步,安装 iproute2 工具包(大多数 Linux 发行版已预装):
yum install iproute iproute-doc # CentOS/RHEL
apt install iproute2 # Debian/Ubuntu
第二步,使用 ip 命令创建虚拟网络接口:
ip link add link eth0 name eth0:1 type vlan id 10
ip addr add 192.168.1.101/24 dev eth0:1
ip link set eth0:1 up
重复以上命令,可创建 eth0:2、eth0:3 等多个接口,分别对应不同用户。
三、分配 IP 地址与配置路由表
为每个虚拟接口分配独立的 IP 地址,并设置相应的子网掩码。然后通过路由表将不同子网的流量精准转发到对应的虚拟接口。
编辑路由配置文件:
vi /etc/sysconfig/network-scripts/route-eth0
添加路由规则示例:
192.168.1.0/24 via 192.168.1.1 dev eth0:1
保存后重启网络使配置生效:
service network restart # CentOS 6
systemctl restart network # CentOS 7+
四、用户端电脑配置
在每个用户的电脑上设置对应的网络参数:
| 参数 | 示例值 |
|---|---|
| IP 地址 | 192.168.1.101 |
| 子网掩码 | 255.255.255.0 |
| 网关 | 192.168.1.1 |
配置完成后,用户即可通过各自的 IP 访问 VPS,实现多人共享使用。
五、配置 SSH 服务器
5.1 安装 OpenSSH
VPS 上通过 SSH 远程管理是最常用的方式。先确保 SSH 服务已安装:
yum install openssh-server openssh-clients # CentOS
apt install openssh-server openssh-client # Ubuntu/Debian
5.2 编辑 SSH 配置文件
vi /etc/ssh/sshd_config
关键配置项说明:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
PermitRootLogin |
yes 或 prohibit-password |
允许 root 登录或仅允许密钥登录 |
PasswordAuthentication |
yes |
允许密码认证(初学者建议开启) |
PubkeyAuthentication |
yes |
开启公钥认证(生产环境推荐) |
MaxAuthTries |
3 |
限制最大认证尝试次数 |
修改完成后,重启 SSH 服务:
systemctl restart sshd
安全提醒:生产环境中,建议禁用密码登录,改用 SSH 公钥认证,大幅提升安全性。
5.3 创建独立用户并配置权限
为每个用户创建独立账号:
useradd -m -s /bin/bash username
passwd username
设置用户目录权限,防止互相访问对方数据:
chmod 700 /home/username
六、配置 FTP 文件传输服务
如果需要让用户通过 FTP 上传文件,推荐使用 vsftpd:
yum install vsftpd # CentOS
apt install vsftpd # Ubuntu
编辑配置文件 /etc/vsftpd.conf,关键参数如下:
anonymous_enable=NO # 禁止匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许写入
chroot_local_user=YES # 将用户限制在自己的主目录
local_root=/home/username # 设置用户根目录
重启服务并设置开机自启:
systemctl restart vsftpd
systemctl enable vsftpd
七、配置虚拟主机(Web 服务)
7.1 安装 Web 服务器
根据你的需求选择 Apache 或 Nginx:
# 安装 Apache
yum install httpd # CentOS
apt install apache2 # Ubuntu
# 安装 Nginx
yum install nginx # CentOS
apt install nginx # Ubuntu
7.2 为不同用户配置独立网站
以 Nginx 为例,创建独立的站点配置文件:
server {
listen 80;
server_name user1.example.com;
root /var/www/user1;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
同样方式为 user2、user3 等创建独立配置,实现用户之间的网站资源完全隔离。
重启 Nginx 使配置生效:
systemctl restart nginx
八、用户隔离与权限控制
为了确保每个用户只能访问自己的资源,建议进行以下安全加固:
- 目录权限隔离:
chmod 700确保用户目录互相不可见 - FTP 目录锁定:
chroot_local_user=YES防止用户跳出主目录 - SSH 密钥分离:为每个用户生成独立的 SSH 密钥对
- 防火墙规则:使用
iptables或firewalld限制各用户的访问范围
示例:使用 iptables 限制用户带宽
iptables -A FORWARD -s 192.168.1.101 -m limit --limit 50/s -j ACCEPT
iptables -A FORWARD -s 192.168.1.101 -j DROP
以上规则将 192.168.1.101 用户的带宽限制在 50 包/秒。
九、测试与验证
配置完成后,按以下顺序逐一测试:
- SSH 连接测试:各用户使用自己的账号密码 SSH 登录 VPS
- FTP 传输测试:使用 FTP 客户端上传下载文件,确认隔离生效
- 网站访问测试:通过域名访问各用户的网站,验证虚拟主机配置
- 权限隔离测试:确认用户 A 无法访问用户 B 的目录内容
十、常见问题解答
Q1:用户反映无法登录 SSH,是什么原因?
检查 /etc/ssh/sshd_config 中的 AllowUsers 或 DenyUsers 规则,确保该用户没有被禁止。同时确认防火墙开放了 22 端口。
Q2:如何限制某个用户只能访问特定目录?
在 vsftpd 中设置 local_root=/home/username 即可限制 FTP 访问范围。对于 SSH,可通过 chroot 机制将用户锁定在指定目录。
Q3:多用户共享会影响 VPS 性能吗?
这取决于 VPS 的硬件配置。建议监控 CPU、内存和带宽使用情况,如果资源紧张,考虑升级到更高配置的方案。
Q4:如何监控各用户的流量使用?
可以使用 iftop、nethogs 等工具实时查看流量,或通过 vnStat 统计月度流量数据。
总结
VPS 多人共享配置并不复杂,关键在于:合理的网络接口规划 → 严格的账户权限隔离 → 独立的虚拟主机配置。按照本文的步骤操作,即使你是 Linux 新手,也能顺利完成部署。需要注意的是,生产环境中务必做好安全加固,避免因权限配置不当引发安全隐患。
如果你觉得这篇文章有帮助,欢迎收藏或分享给有需要的朋友!
本文整理自网络公开资料,内容经过重新编排以提升可读性与实用性。