VNC (Virtual Network Console)是虛擬網絡控制台的縮寫。它 是一款優秀的遠程控制工具軟件,由著名的AT&T的歐洲研究實驗室開發的。VNC 是在基於 UNIX和 Linux 操作系統的免費的開源軟件,遠程控制能力強大,高效實用,其性能可以和Windows和 MAC 中的任何遠程控制軟件媲美。 在 Linux 中,VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多數情況下用戶只需要其中的兩個命令:vncserver 和 vncviewer。
一、Linux CentOS 7.X下安裝部署VNC如下:
1、獲取當前系統啟動模式
[root@localhost ~]# systemctl get-default
multi-user.target
2、查看配置文件
[root@localhost ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
#systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
#multi-user.target: analogous to runlevel 3 //命令行模式
# graphical.target: analogous to runlevel 5 //圖形界面模式
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
[root@localhost ~]# systemctl set-default graphical.target //由命令行模式更改為圖形界面模式
[root@localhost ~]# systemctl set-default multi-user.target //由圖形界面模式更改為命令行模式
[root@localhost ~]# systemctl get-default
graphical.target
3、關閉防火牆
centos的防火牆是firewalld,關閉防火牆的命令
[root@localhost ~]# systemctl stop firewalld.service #停止firewall
[root@localhost ~]# systemctl disable firewalld.service #禁止firewall開機啟動
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
[root@localhost ~]# cat /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
4、安裝軟件:
[root@localhost ~]# yum update
[root@localhost ~]# yum groupinstall "GNOME Desktop" "X Window System" "Desktop"
[root@localhost ~]# yum install tigervnc-server tigervnc vnc vnc-server
5、配置vnc連接
[root@localhost ~]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
修改/etc/systemd/system/vncserver@:1.service
找到這一行
ExecStart=/sbin/runuser -l
PIDFile=/home/
這里直接用root 用戶登錄,所以我替換成
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
如果是其他用戶的話比如eason替換如下
ExecStart=/sbin/runuser -l eason -c "/usr/bin/vncserver %i"
PIDFile=/home/john/.vnc/%H%i.pid
由於直接root用戶登錄,所以配置如下:
[root@localhost ~]# cat /etc/systemd/system/vncserver@:1.service
.........
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/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
為VNC設密碼(比如密碼設置為123456)
[root@localhost ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n //注意表示"是否輸入一個只能查看的密碼,選擇否",否則連接vnc會出現黑屏
A view-only password is not used
[root@localhost ~]# vim /etc/libvirt/qemu.conf
vnc_password = "123456"
vnc_listen = "0.0.0.0"
6、重加載 systemd
[root@localhost ~]# systemctl daemon-reload
7、啟動vnc
[root@localhost ~]# systemctl enable vncserver@:1.service
[root@localhost ~]# systemctl start vncserver@:1.service
注意,此處關閉了防火牆
如果防火牆開了,需要開通一下規則:
[root@localhost ~]# firewall-cmd --permanent --add-service vnc-server
[root@localhost ~]# systemctl restart firewalld.service
如果是iptable,則需要在/etc/sysconfig/iptables里添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5903 -j ACCEPT
8、關閉vnc連接
[root@localhost ~]# /usr/bin/vncserver -kill :1
9、測試連接
也可以在本地windows機器上安裝vnc viewer,遠程訪問
在windows下安裝vnc客戶端,
VNC遠程連接信息(下面ip是VNC服務端的地址):
VNC Server: 112.112.113.56:5901
Encrytion:Let VNC Server choose
然后輸入vncpasswd的密碼即可完成VNC遠程連接!
如圖:輸入VNC密碼即可登錄。
vnc安裝步驟:
關閉防火牆,centos的防火牆是firewalld,關閉防火牆的命令systemctl stop firewalld.service 。關閉enforce,setenforce 0。
1.安裝tigervncserver,yum install tigervnc-server tigervnc-server-module
2.拷貝配置文件cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
3.進入到配置文件目錄cd /etc/systemd/system
4.修改配置文件vim vncserver@:1.service
配置文件內容為:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=root
ExecStart=/usr/bin/vncserver :1 -geometry 1280x1024 -depth 16 -securitytypes=none -fp /usr/share/X11/fonts/misc
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=multi-user.target
- 啟用配置文件 systemctl enable vncserver@:1.service
- 設置登陸密碼:vncpasswd
- 啟動vncserver:systemctl start vncserver@:1.service
8 .啟動狀態查看:systemctl status vncserver@:1.service
9.查看端口狀態:netstat -lnt | grep 590*
10.查看報錯信息:grep vnc /var/log/messages