VNC

转自:http://hi.baidu.com/daniel_tu/blog/item/aaf8ad1cd63c2c8e87d6b60b.html

1.查看VNC是否已经安装:
$ rpm -q vnc vnc-server
vnc-4.1.2-24.fc8
vnc-server-4.1.2-24.fc8


我们一般用的是Tigervnc.

yum install -y tigervnc tigervnc-server

vnc是客户端,vnc-server是服务器端

2.把用户名加入到配置文件中:

CODE:
[root@localhost ~]# sudo vi /etc/sysconfig/vncservers

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# as my 'myusername' (adjust this to your own).   You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!   For a secure way of using VNC, see
# URL:http://www.uk.research.att.com/vnc/sshvnc.html
                                                                                              
# VNCSERVERS="1:myusername"
VNCSERVERS="1:root"

3.用vncpasswd创建一个vnc的口令

注意这将同时在你的home目录下,创建一个隐藏的目录.vnc,其中有一个文件passwd保存着你的vnc口令.

CODE:
[ root@localhost ~]# vncpasswd
Password:
Verify:
[root@localhost ~]# ls -d .vnc
.vnc
[root@localhost ~]# ls .vnc
passwd

4.启动vnc服务.

CODE:
[root@localhost ~]# sudo /sbin/service vncserver restart
Shutting down VNC server: 1:root                           [ OK ]
Starting VNC server: 1:root perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "zh_EN.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

                                                           [ OK ]

察看一下.vnc这个目录的内容,应该类似于下面的东西.

CODE:
[root@localhost ~]# cd .vnc
[root@localhost .vnc]# ls
localhost.localdomain:1.log localhost.localdomain:2.log passwd
localhost.localdomain:1.pid localhost.localdomain:2.pid xstartup
[root@localhost .vnc]#

编辑这个名为xstartup的脚本,注意到下面红色的部分的注释
将这两行标记成红色的内容前面的注释符号去掉,否则你将只能得到一个什么都没有的灰屏。#!/bin/sh
                                                                                              
# Uncomment the following two lines for normal desktop:

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
                                                                                             
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

因为我们已经修改了启动脚本,现在来重新启动vncserver.

CODE:
[root@localhost .vnc]# sudo /sbin/service vncserver restart
Shutting down VNC server: 1:root                           [ OK ]
Starting VNC server: 1:root perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "zh_EN.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

                                                           [ OK ]
[root@localhost .vnc]#

5.防火墙端口设置
在使用防火墙的情况下来连接到一个远程系统,需要打开端口5901.
加入以下红色的部分,然后重启iptables服务。

[root@localhost ~]# sudo vi /etc/sysconfig/iptables

# Firewall configuration written by redhat-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0]
:FORWARD ACCEPT [0]
:OUTPUT ACCEPT [0]
:RH-Firewall-1-INPUT - [0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

[root@localhost ~]# sudo /sbin/service iptables restart
Flushing firewall rules:                                   [   OK   ]
Setting chains to policy ACCEPT: filter                    [   OK   ]
Unloading iptables modules:                                [   OK   ]
Applying iptables firewall rules:                          [   OK   ]
[root@localhost ~]#
================================
其他:
================================

1. 让vncserver接受两个不同的用户:

CODE:
VNCSERVERS="1:root 2:yanyp"

当然你要为两个用户分别运行vncpasswd来设置口令. 并且在你的防火墙修改中,你应该明白VNC使用端口5901给连接1用,如果象上面一样要支持两个用户,应同时打开5901和5902.

2. 如果安装了用客户端vncviewer可以使用 vncviewer命令来远程连接vncserver

[root@localhost ~]$ vncviewer localhost(或者用IP地址):1

输入你的vnc口令,就可以了

### 什么是 VNCVNC(Virtual Network Computing)是一种远程桌面控制技术,允许用户通过网络远程访问和操作另一台计算机的图形界面。其核心原理是将远程计算机的屏幕画面实时传输到本地设备,并将本地的键盘和鼠标输入反向传回远程设备,从而实现远程控制[^3]。VNC 是跨平台的,支持在不同操作系统之间进行连接,例如从 Windows 访问 Linux 或从 macOS 访问 Windows 系统[^3]。 VNC 工具由客户端和服务器两部分组成。服务器端负责运行并捕获远程主机的屏幕内容,客户端则用于连接服务器并显示远程桌面。常见的 VNC 组件包括: - **Vncserver**:用于启动和管理 VNC 服务器; - **Vncviewer**:客户端软件,用于连接远程 VNC 服务器; - **Vncpassword**:用于设置或修改 VNC 连接的密码; - **Vncconnect**:允许从客户端主动发起连接请求[^1]。 与 SSH 不同,VNC 提供的是图形化界面的远程访问能力,适用于需要图形交互的场景,例如远程协助、图形应用操作等[^4]。 ### 如何使用 VNC? 使用 VNC 的基本流程包括安装 VNC 服务器和客户端软件、配置服务器、启动服务以及通过客户端进行连接。 #### 安装 VNC 服务器 在 Linux 系统上,可以通过包管理器安装 VNC 服务器。例如,在基于 Red Hat 的系统中,可以使用以下命令: ```bash sudo yum install tigervnc-server ``` 在 Debian 或 Ubuntu 系统中,可以使用: ```bash sudo apt install tightvncserver ``` #### 配置 VNC 服务器 安装完成后,需要设置 VNC 用户密码: ```bash vncserver ``` 首次运行时,系统会提示设置密码,并生成一个默认的桌面会话配置。 #### 启动 VNC 服务 启动 VNC 服务并指定显示编号(如 :1): ```bash vncserver :1 ``` 这将启动一个运行在端口 5901 的 VNC 会话(每个显示编号对应 5900 + 编号的端口)[^2]。 #### 使用 VNC 客户端连接 在本地设备上安装 VNC 客户端(如 RealVNC、TightVNC、UltraVNC 或 Remmina),打开客户端并输入远程主机的 IP 地址和端口号(如 `192.168.1.100:5901`),然后输入之前设置的密码即可连接[^2]。 #### 停止 VNC 服务 如果需要关闭某个 VNC 会话,可以使用以下命令: ```bash vncserver -kill :1 ``` 其中 `:1` 是之前启动的显示编号。 ### VNC 的典型用途 - **远程技术支持**:帮助用户解决远程计算机上的问题; - **跨平台访问**:从不同操作系统访问同一台计算机; - **服务器图形界面访问**:在无头服务器上运行图形应用并通过 VNC 访问; - **教育和演示**:共享屏幕进行教学或展示。 ### VNC 的局限性 尽管 VNC 功能强大,但也存在一些局限性: - **性能问题**:在低带宽环境下,图形传输可能较慢; - **安全性依赖**:默认 VNC 协议本身不加密数据,需结合 SSH 或使用加密版本(如 VeNCrypt)提升安全性; - **依赖图形界面**:若远程主机未安装图形环境(如最小化安装的 Linux 服务器),需额外安装桌面环境(如 GNOME 或 XFCE)才能使用 VNC[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值