安裝使用VNC
VNC (Virtual Network Console)是虛擬網(wǎng)絡控制臺的縮寫劣领。它是一款優(yōu)秀的遠程控制工具軟件生真,由著名的 AT&T 的歐洲研究實驗室開發(fā)的悬蔽。VNC 是在基于 UNIX 和 Linux 操作系統(tǒng)的免費的開源軟件奕筐,遠程控制能力強大岛啸,高效實用泪酱,其性能可以和 Windows 和 MAC 中的任何遠程控制軟件媲美派殷。
VNC基本上是由兩部分組成:一部分是客戶端的應用程序(vncviewer)还最;另外一部分是服務器端的應用程序(vncserver)。VNC的基本運行原理和一些Windows下的遠程控制軟件很相像毡惜。VNC的服務器端應用程序在UNIX和Linux操作系統(tǒng)中適應性很強拓轻,圖形用戶界面十分友好,看上去和Windows下的軟件界面也很類似经伙。在任何安裝了客戶端的應用程序(vncviewer)的Linux平臺的計算機都能十分方便地和安裝了服務器端的應用程序(vncserver)的計算機相互連接扶叉。另外,服務器端 (vncserver)還內建了Java Web接口帕膜,這樣用戶通過服務器端對其他計算機的操作就能通過Netscape顯示出來了枣氧,這樣的操作過程和顯示方式比較直觀方便。
1. 在 Linux 服務器上安裝配置 VNC-server
1.1 CentOS 下安裝桌面環(huán)境及 VNC 服務
vnc 服務依賴于桌面環(huán)境的運行垮刹,CentOS7 默認最小安裝是不帶桌面環(huán)境的达吞,所以安裝 VNC 之前需要首先安裝桌面環(huán)境,GNOME 或者 KDE 均可荒典。
我們以安裝 "GNOME Desktop" 桌面環(huán)境為例安裝 GNOME 桌面環(huán)境酪劫。
## 列出可安裝的group
$ sudo yum grouplist
## 安裝 GNOME 桌面環(huán)境
$ sudo yum groupinstall "GNOME Desktop"
## 設置默認啟動方式為界面啟動
$ sudo ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
## 重啟服務器
$ sudo reboot
注意:對于已經安裝桌面環(huán)境的 CentOS7 可以不做處理。
確認桌面環(huán)境安裝完成后, 安裝 VNC 服務端寺董。
## 安裝 vnc-server
$ sudo yum install tigervnc tigervnc-server
1.2 配置 vnc-server
1.2.1 拷貝配置文件
安裝完成后開始配置, 將模板配置文件拷貝至配置文件目錄下 /etc/systemd/system/
, 如果是多用戶契耿,則每個用戶拷貝一份,其中 @:1.service
中的數(shù)字 1
對應 VNC 服務端口 5901
, 數(shù)字 2
對應端口 5902
根據(jù)自己需求設置即可螃征。
## 復制配置模板文件
$ sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
## 編輯配置文件
$ sudo vim /etc/systemd/system/vncserver@:1.service
配置文件(/etc/systemd/system/vncserver@:1.service
)內容:
# The vncserver service unit file
#
# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/vncserver@.service
# 2. Replace <USER> with the actual user name and edit vncserver
# parameters appropriately
# (ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
# PIDFile=/home/<USER>/.vnc/%H%i.pid)
# 3. Run `systemctl daemon-reload`
# 4. Run `systemctl enable vncserver@:<display>.service`
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, you should
# limit connections to the local host and then tunnel from
# the machine you want to view VNC on (host A) to the machine
# whose VNC output you want to view (host B)
#
# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB
#
# this will open a connection on port 590N of your hostA to hostB's port 590M
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
# See the ssh man page for details on port forwarding)
#
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
# the help of ssh, you end up seeing what hostB makes available on port 590M
#
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
#
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.
[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 <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
1.2.2 修改配置文件
將配置文件中 <USER>
全部替換為自己的用戶名,例如用戶為 sam
, 則修改為:
ExecStart=/usr/sbin/runuser -l sam -c "/usr/bin/vncserver %i"
PIDFile=/home/sam/.vnc/%H%i.pid
如果是使用 root
賬戶登錄透敌,則修改為:
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
1.2.3 重新加載配置文件
## 重新加載 systemctl 文件
$ sudo systemctl daemon-reload
1.2.4 添加防火墻例外
對于是默認防火墻(firewall
)的盯滚,可以使用 firewall-cmd
進行配置:
## 方法一:添加 VNC 服務例外
$ sudo firewall-cmd --permanent --add-service vnc-server
## 方法二: 添加 5901 端口例外
$ sudo firewall-cmd --permanent --add-port 5091-5902/tcp
## 方法三:關閉并禁用防火墻(不推薦)
$ sudo systemctl stop firewalld.service
$ sudo systemctl disable firewalld.service
## 重啟防火墻(適用于方法一和二)
$ sudo systemctl restart firewalld.service
對于防護墻為 iptable
的,修改相應的配置文件酗电,添加 VNC 例外:
## 編輯配置文件
$ sudo vim /etc/sysconfig/iptables
在合適的位置添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901:5902 -j ACCEPT
然后重啟防火墻:
## 重啟防火墻
$ sudo service iptables restart
1.2.5 修改 VNC 連接密碼
修改相應賬戶的連接密碼:
$ vncpasswd sam
1.2.6 啟動 VNC 并設置開機啟動
為了方便連接魄藕,可以設置 VNC 開機啟動:
## 設置開機啟動
$ sudo systemctl enable vncserver@:1.service
## 啟動 VNC 服務
$ sudo systemctl start vncserver@:1.service
## 查看 VNC 服務運行情況
$ sudo systemctl status vncserver@:1.service
## 停止 VNC 服務
$ sudo systemctl stop vncserver@:1.service
VNC 配置完成并啟動后就可以使用本地客戶機進行遠程連接了。
2. 在 Windows 下安裝配置 VNC 服務
下載相應版本安裝 TightVNC :
- Installer for Windows (64-bit) (2,232,320 bytes)
- Installer for Windows (32-bit) (2,035,712 bytes)
安裝完成后按照指示進行配置即可撵术。
3. 遠程連接服務器
3.1 Windows 下遠程連接
Window 下使用 TightVNC-Viewer 進行連接:
填寫 IP 及 端口號:
輸入配置的 VNC 連接密碼即可遠程控制服務器:
3.2 Mac 下遠程連接
Mac 下有天然優(yōu)勢背率,在 safari 瀏覽器地址欄中輸入IP地址及端口即可:vnc://192.168.3.2:5901
, 這里的 IP 地址更換為自己的服務器 IP 地址。
3.3 Linux 下遠程連接
待續(xù)~
4. 參考資料
- http://www.baike.com/wiki/VNC
- https://my.oschina.net/huhaoren/blog/497394
- https://www.digitalocean.com/community/questions/couldn-t-start-vnc-server
歡迎關注小劉哥嫩与!