Centos 7 配置 VNCServer 經驗

本文详细介绍了如何在CentOS 7上安装与配置VNCServer,包括解决启动失败、连接错误等问题的方法,并提供了一些实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安裝 Centos 7後, 習慣性的安裝  Xmanager 3或4, 都不能正常工作, 無奈之下開始安裝 VNCServer。

(個人習慣使用Xmanager, 因為不需要安裝,只要配置一下就能用, 而且一直很穩定)

為了節省以後安裝 vncserver 的時間,寫這篇文章作備忘用


安裝/配置:

使用 yum 安裝 tigervnc-server

# yum install tigervnc-server



拷貝服務配置文件: 

# cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service


按照 vncserver@:1.service 文件頭部的指導, 只需要以下部分:

把有 <USER> 的地方都改為 用戶名, 本文使用 root , 文件內容如下:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill 1 > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'


[Install]
WantedBy=multi-user.target

備注:如果不是 root用戶,則以下一行需要修改為:

PIDFile=/home/user001/.vnc/%H%i.pid


重新加載systemd守護進程, 使修改生效

# systemctl daemon-reload


設置連接密碼

# vncpasswd


啟動服務命令:

# systemctl start vncserver@:1.service


問題1:不能啟動服務

提示錯誤如下:



解決方法:

修改 vncserver@:1.service 文件中 Type=simple


再嘗試啟動服務後OK

# systemctl daemon-reload

# systemctl start vncserver@:1.service


到此, 在 win7 使用 vncview 已經可以遠程連線這台 VNCServer了 (需要在 IP 地址後面加上冒號5901註明端口, 例 10.0.0.100:5901)

 

問題2:vncviewer 連接時報錯:connect: Connection refused (10061)

解決方法: 在 vncviewer 輸入 IP  地址時 加上桌面號, 即 vncserver@:1.service   中的 1

 以本文為例, 輸入 ip 為 : 192.168.1.100:1 就可以了.


 

問題3:不能停止服務

使用以下命令不能停止服務

# systemctl stop vncserver@:1.service

以上命令執行成功, 也沒有錯誤提示, 使用 telnet 來測試 VNCServer 的 5901 端口, 仍然是通的, 說明實際上服務仍在運行

說明2點:

(1) 以上情形只會發生在 root 用戶

(2) 使用 # vncserver -kill :1 可以停止服務


解決方法:

修改 /lib/systemd/system/vncserver@:1.service  文件

把 PidFile=/home/root/.vnc/%H%i.pid

改為 PidFile=/root/.vnc/%H%i.pid

再嘗試重啟服務後,就可以使用 # systemctl stop vncserver@:1.service 命令停止服務了


備注:

1) systemctl 設置服務自動啟動的命令為 systemctl enable vncserver@:1.service 

2) 配置過程中發現以下現象都是 vncserver@:1.service 沒有配好的原因:

    (1) 執行啟動服務的命令後,在幾秒後服務停止, telnet 5901端口不通

    (2) 使用 vncview 工具連線後彈出 Unencryption connection 錯誤, 或 telnet 5901端口後報錯: Unencryption connection

3) 使用 # systemctl status vncserver@:1.service 查看服務狀態不一定準確, 尤其是在異常處理階段

     建議使用dos命令 telnet 來測試服務是否啟動, 或者使用 # lsof -i:5901

4) 異常處理階段建議關閉防火牆:

    # systemctl stop iptables.service

    # systemctl disable iptables.service

    # systemctl stop firewalld.service

    # systemctl disable firewalld.service

5) 如果沒有安裝圖形界面, 將不能直接使用 vncserver, 可以安裝成功,但無法正常啟動vncserver服務.

安裝圖形界面命令如下:

    # yum groupinstall "X Window System"

    # yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

設置默認啟動圖形界面

    # unlink /etc/systemd/system/default.target

    # ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

    # reboot


<think>我们正在配置CentOS7上的VNC服务器。根据引用内容,我们可以整理出以下步骤:1.安装必要的软件包:tigervnc-server2.配置VNC服务(设置服务文件、设置密码等)3.启动VNC服务并设置开机自启4.配置防火墙允许VNC端口5.使用VNC客户端连接注意:引用中提到了多个用户配置的情况,但用户问题只要求配置VNC服务器,我们可以先以当前用户(比如root或普通用户)为例。具体步骤:1.安装TigerVNC服务器```bashyum installtigervnc-server -y```2.配置VNC服务(以当前用户为例,假设用户名为`username`,实际替换为你的用户名)首先,为当前用户设置VNC密码:```bashvncpasswd```它会提示你输入并确认密码,以及设置一个只有查看权限的密码(可选)。然后,复制一个服务配置文件(以用户root为例,服务文件名为`vncserver@:1.service`,其中1表示显示号,对应端口5901):```bashcp/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service```编辑这个文件:```bashvi /etc/systemd/system/vncserver@:1.service```修改文件中的`<USER>`为你的用户名(比如root或普通用户名)。例如,将:```ExecStart=/usr/sbin/runuser-l<USER> -c "/usr/bin/vncserver %i"PIDFile=/home/<USER>/.vnc/%H%i.pid```改为(如果用户是root):```ExecStart=/usr/sbin/runuser-lroot -c "/usr/bin/vncserver %i"PIDFile=/root/.vnc/%H%i.pid```或者如果是普通用户(如`username`):```ExecStart=/usr/sbin/runuser -l username-c"/usr/bin/vncserver%i"PIDFile=/home/username/.vnc/%H%i.pid```3.重新加载systemd配置:```bashsystemctldaemon-reload```4.启动VNC服务并设置开机自启:```bashsystemctl startvncserver@:1.servicesystemctl enablevncserver@:1.service```5.检查服务状态和端口:```bashsystemctl statusvncserver@:1.servicenetstat -tunlp| grep5901```6.防火墙配置(如果防火墙开启):```bashfirewall-cmd --permanent--add-port=5901/tcpfirewall-cmd --reload```7.使用VNC客户端(如TigerVNCViewer)连接:地址:`服务器IP:1`或 `服务器IP:5901`注意:如果需要配置多个用户,可以为每个用户创建不同的服务文件(如`vncserver@:2.service`)并设置不同的端口(5902),然后为每个用户设置密码并启动对应的服务。引用[2]和引用[5]提到了安装和配置的具体命令,引用[3]提到了服务状态查看和连接步骤。但是,请注意:在CentOS7中,默认的VNC服务配置方式如上。另外,如果使用普通用户,需要确保该用户有家目录,并且使用`vncpasswd`命令设置密码。根据引用[4],VNC包括四个命令,但我们主要使用`vncserver`和`vncpasswd`。最后,用户可能需要配置图形界面。CentOS7最小安装可能没有图形界面,如果需要,可以安装GNOME桌面:```bashyum groupinstall "GNOMEDesktop"-y```然后,在用户家目录下的`.vnc/xstartup`文件中配置启动图形界面(如果该文件不存在,可以创建)。在`xstartup`文件中加入:```bash#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSexec/etc/X11/xinit/xinitrc```并赋予执行权限:```bashchmod +x ~/.vnc/xstartup```重启VNC服务。以上步骤综合了多个引用的内容,并按照常规配置流程整理。注意:由于用户问题要求配置CentOS7的VNC服务器,我们以系统服务的方式配置(使用systemctl)是推荐做法。如果遇到问题,可以检查日志:`/var/log/messages`或 `journalctl-uvncserver@:1.service`。现在,我们根据上述步骤生成回答。</think>### 在CentOS 7配置VNC服务器的完整指南 #### 步骤1:安装VNC服务端 ```bash # 安装TigerVNC服务器 sudo yum install tigervnc-server -y # 验证安装(应显示类似 tigervnc-server-1.8.0-23.el7.x86_64) rpm -qa | grep tigervnc-server ``` [^5] #### 步骤2:配置VNC服务 1. **复制服务模板**(以显示号:1为例): ```bash sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service ``` 2. **编辑配置文件**: ```bash sudo vi /etc/systemd/system/vncserver@:1.service ``` 修改两处`<USER>`为实际用户名(如root): ```ini [Service] Type=forking ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i" PIDFile=/root/.vnc/%H%i.pid ``` #### 步骤3:设置VNC密码 ```bash # 切换到目标用户 su - root # 设置密码(会创建~/.vnc目录) vncpasswd ``` [^4] #### 步骤4:启动服务并设置开机自启 ```bash # 重载systemd配置 sudo systemctl daemon-reload # 启动服务 sudo systemctl start vncserver@:1.service # 设置开机自启 sudo systemctl enable vncserver@:1.service ``` [^2] #### 步骤5:防火墙配置 ```bash # 开放5901端口(对应显示号:1) sudo firewall-cmd --permanent --add-port=5901/tcp sudo firewall-cmd --reload ``` #### 步骤6:验证服务状态 ```bash # 检查服务状态 systemctl status vncserver@:1.service # 查看监听端口(应显示5901) netstat -tunlp | grep 590 # 列出活动会话 vncserver -list ``` [^3][^2] #### 步骤7:连接VNC服务器 使用VNC客户端(如TigerVNC Viewer)连接: ``` 服务器IP:1 # 或 服务器IP:5901 ``` #### 故障排除技巧 1. **黑屏问题**:编辑`~/.vnc/xstartup`文件,末尾添加: ```bash unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc ``` 2. **多用户配置**:重复步骤2-4,使用新显示号(如`:2`)和端口`5902` 3. **日志查看**: ```bash journalctl -u vncserver@:1.service -f ``` > **重要安全建议**: > 建议通过SSH隧道访问VNC(`ssh -L 5901:localhost:5901 user@server`),避免直接暴露5901端口在公网[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值