远程办公时,团队里三四个人都要连接同一台 CentOS7 服务器,却不知道怎么配置多用户;好不容易设好了,防火墙又把连接拦住,每个人都在喊 “连不上”—— 你是不是也被这种场景搞得头大?做行政的小李就遇到过,他们部门 3 台电脑要远程用公司的 CentOS7 服务器,装了 VNC 却只能一个人连,其他人一登就踢掉前面的,急得她直问 IT 同事。其实啊,CentOS7 的 VNC 支持多用户同时登录,就是得手动配置每个用户的桌面,再把防火墙端口开好,步骤不算复杂,就是细节多。今天就把多用户登录配置步骤、防火墙怎么设、常见问题的解决方法说透,附用户配置对比表,新手跟着做,团队远程办公不用抢连接,一起往下看吧!
先明白:多用户登录 VNC,到底有啥用?
其实啊,多用户登录就是让不同的人用自己的账号,同时连接 CentOS7 的 VNC,各自操作互不影响。小李他们部门用了这招后,她查数据、同事导文件、领导看报表,三个人同时操作,服务器也没卡顿。
它和单用户的区别就像:单用户是 “共用一个电脑”,别人在用你就得等;多用户是 “每人一个虚拟桌面”,各玩各的。IT 同事说,这对团队协作太重要了,尤其是远程办公时,总不能让大家排着队用服务器吧?
但有些朋友会问:“多开几个用户,服务器会不会变慢?” 其实只要服务器内存够(8G 以上),同时登 3-5 个用户完全没问题,小李他们的服务器 16G 内存,5 个人同时用都很流畅。
多用户登录配置:分 4 步,每个用户对应一个 “虚拟桌面”
(1)先创建用户,别都用 root 登录
CentOS7 里,最好给每个远程用户建个普通账号,别都用 root,不安全。小李他们是这么做的:
- 登录 root 账号,输 “useradd zhangsan”(创建张三用户),再 “passwd zhangsan” 设密码,同理创建 lisi(李四)用户;
- 为啥不用 root?IT 同事说,root 权限太大,多用户共用容易误删文件,普通用户权限有限,安全得多。
(2)给每个用户配置 VNC 服务文件,别搞混
每个用户得有自己的 VNC 配置,不然会冲突。步骤有点绕,但拆开来很简单:
- 先复制模板文件:输 “cp /lib/systemd/system/vncserver@.service/etc/systemd/system/vncserver@:1.service”,这里的 “:1” 是张三的桌面编号(记好,后面要用);
- 编辑配置文件:“vi /etc/systemd/system/vncserver@:1.service”,找到 “”,改成 “zhangsan”(用户账号),保存退出;
- 李四的话,就复制成 “vncserver@:2.service”,改 “” 为 “lisi”,桌面编号用 “:2”,以此类推。
小李第一次配置时,把两个用户的桌面编号都设成 “:1”,结果一人登录另一人就被踢掉,后来才知道编号必须不一样。
(3)每个用户设 VNC 密码,别用同一个
密码得每个用户自己设,不能全用一样的。步骤:
- 切换到张三用户:“su – zhangsan”,输 “vncserver”,按提示设密码(至少 6 位),确认后会生成桌面文件;
- 切换到李四用户:“su – lisi”,同样输 “vncserver” 设密码,注意这里会自动用之前的桌面编号 “:2”;
- 小李说他们部门一开始图省事,全用 “123456” 当密码,被 IT 同事批评了,后来全改成 “姓名首字母 + 数字”,安全多了。
(4)启动服务并设开机自启,别每次手动开
服务不启动,配置了也白搭。步骤:
- 启动张三的服务:“systemctl start vncserver@:1.service”,李四的:“systemctl start vncserver@:2.service”;
- 设开机自启:“systemctl enable vncserver@:1.service”“systemctl enable vncserver@:2.service”;
- 输 “systemctl status vncserver@:1.service”,看到 “active (running)” 就说明启动成功,小李他们每天上班前都会检查一遍,省得有人连不上。
防火墙设置:多用户对应多端口,一个都不能漏
VNC 多用户登录,每个用户用的端口不一样(5900 + 桌面编号),防火墙得一个个放开,不然会被拦。
(1)搞懂端口对应关系,别开错
每个桌面编号对应一个端口,比如:
- 张三(:1)→ 5901 端口;
- 李四(:2)→ 5902 端口;
- 再多用户就按 “5900 + 编号” 算,小李他们部门 3 个用户,开了 5901、5902、5903。
(2)开放端口,步骤要记牢
IT 同事教的开放方法,简单有效:
- 输 “firewall-cmd –zone=public –add-port=5901/tcp –permanent”(开放张三的 5901 端口);
- 同理开放李四的 5902 端口:“firewall-cmd –zone=public –add-port=5902/tcp –permanent”;
- 最后输 “firewall-cmd –reload”,让设置生效,不然白开。
小李第一次开放后没 reload,同事还是连不上,以为端口没开对,后来才知道少了这步,端口其实没生效。
(3)多用户端口配置对比表,一目了然
用户名 | 桌面编号 | 对应端口 | 防火墙开放命令 |
---|---|---|---|
张三 | :1 | 5901 | firewall-cmd –add-port=5901/tcp –permanent |
李四 | :2 | 5902 | firewall-cmd –add-port=5902/tcp –permanent |
王五 | :3 | 5903 | firewall-cmd –add-port=5903/tcp –permanent |
小李把这张表贴在部门群里,谁要连服务器,一看就知道自己该用哪个端口,省了不少解释时间。
常见问题:多用户登录容易踩的坑,小李他们都遇过
(1)“连接被拒绝”,多半是端口或编号错了
同事小王登不上时,总提示 “connection refused”,小李查了发现:
- 他输的桌面编号是 “:1”,但自己是王五(应该用 “:3”);
- 防火墙没开 5903 端口,补上后立马连上。
(2)多用户同时登录卡顿,可能是服务器内存不够
小李他们部门 5 个人同时登录时,服务器变卡,IT 同事查了内存,只剩 1G 可用:
- 解决方法:关闭不用的用户连接(比如 “vncserver -kill :2” 关掉李四的);
- 长期的话,建议加内存,8G 内存最多同时登 4 个用户,再多就卡。
(3)防火墙重启后端口失效,忘了保存设置
有次服务器重启,所有人都连不上,发现防火墙端口全没了:
- 因为之前开放端口时没加 “–permanent” 参数,重启后失效;
- 重新开放并加参数,再 “firewall-cmd –reload”,以后重启就不会丢了。
小编的心里话
CentOS7 的 VNC 多用户配置,看着步骤多,其实拆成 “建用户→配服务→设密码→开端口” 四步,也没那么难。新手可以先从 2 个用户练手,熟悉后再增加,防火墙端口一定要和桌面编号对应上,不然白忙活。
小李他们现在用了半个月,团队远程办公效率提高不少,她说 “一开始怕配置错,现在觉得也就那样,多试两次就熟了”。其实啊,远程办公工具的配置,就怕畏难,真动手做起来,很多问题也就迎刃而解了,你说对吧?