`
gaofen100
  • 浏览: 1187429 次
文章分类
社区版块
存档分类
最新评论

VNC配置 --windows和linux远程桌面互访

 
阅读更多

from: http://fedoralog.blog.sohu.com/30188828.html

引:
本文详细介绍了vncserver配置细节(略去安装过程)。设置vnc连接多端口、多用户、端口防火墙设置、vnc password、保持vncserver端口号不变及相关技巧。
本文介绍windows和Linux远程桌面互访的最常用途径
---作者:Icerjoe 2007/01/18


参考了一大堆的网络vnc配置文章。现总结说明个人配置经验如下:

1、环境
fedora6 +windows xp
vncviewer 安装到windows中。fedora6中已经在安装系统中自动安装了vnc。
rpm -qa |grep vnc显示如下:
vnc-server-4.1.2-8.fc6
vnc-server-4.1.2-9.fc6
可能yum过,所以有两个版本。
在gnome桌面中--系统--首选项--远程桌面。进行相关设置。
2、配置细节
在首次运行及测试连接vncserver过程中,会在用户目录下创建.vnc目录。并自动生成相关文件。
如上述gnome远程桌面中设置了密码访问,则此目录自动生成passwd文件(也可以用vncpasswd命令设置用户密码,不少于6个字符)。及host:ID.log和host:ID.pid文件。ID会根据连接顺序自动增加。其中最主要的是xstartup文件。
网上很多资料要求vi 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 &
也有不要求注释掉exec /etc/X11/xinit/xinitrc下面一行开始所有部分。从这段shell sripts来看,仅仅是测试文件是否存在及属性设置及后面部分是设置成twm桌面的参数。所以只要保证
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
这两行不被注释就可以。这样设置后,远程连接显示桌面为个人Xwindows默认桌面登录环境。比如你设置登录环境为gnome桌面。则远程连接为gnome桌面。
如果想更换桌面环境。可以注释掉xstartup中所有的行,在最后增加startkde & ,你就可以用kde来代替twm,速度会慢少少,但用起来方便不少,也可以用gnome-session & 来启动gnome。

另外相关vncserver设置在/etc/sysconfig/vncservers中,可根据里面的说明及自己需要进行设置。或将最后注释两行或一行启用。
3、vncserver启动及停止相关
启动# /sbin/service vncserver start
关闭# /sbin/service vncserver stop
在用户远程连接过程中,会自动在~/.vnc目录中创建host:ID.pid及host:ID.log文件。其中ID会按顺序增加。也可以在远程连接中指定ID。比如在vncviewer中输入(remotehost)IP:5。则会在.vnc中创建host:5.log和host:5.pid文件。此操作也可以在本地操作。输入
vncserver
vncserver :5
:5表示指定ID.
删除本地及远程vnc连接进程,用vncserver -kill :ID命令。会自动断开相关ID的pid,并删除.vnc目录中相关ID的host:ID.pid文件。.log文件保留日志。

4、端口及防火墙
如果你开启了防火墙。默认情况下,没有开启相关允许远程vnc连接的端口。可考虑通过开启5900或5900到5910端口。(WEB java访问页面端口为5801、5802,如果定义两个用户)
方法一:$sudo vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
:OUTPUT ACCEPT [0: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 -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 21 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 22 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state -m udp --dport 137 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state -m udp --dport 138 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 139 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 445 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 80 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 443 --state NEW -j ACCEPT
# web10000
-A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 10000 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 631 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 5900 --state NEW -j ACCEPT
#-A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 5900:5910 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
因为vncviewer远程连接端口默认为5900。如指定ID,则根据上面开的端口范围5900到5910可指定10个ID.
保存重启iptables.
$ 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]
方法二:建议初学者安装webmin。
默认访问端口为http://host:10000端口。进行防火墙图形界面设置
如果未连接vnc进行远程设置防火墙,可考虑远程ssh到linux服务器。
(windows中建议大家ssh远程连接用putty或类似软件
参考1:SSH+SFTP transfer file by safety
参考2:A Comparison of Free SSH and SCP Programs for Windows)或安装webmin时开始好10000端口,webmin通过web方式访问。
5、连接及多用户连接
连接:

vncserver的连接分web方式和vncviewer方式。web方式同样需要相关防火墙开启及浏览器java支持。
如果vncviwer中输入hostip:ID则web中输入http://hostip:590(ID) 比如:http://202.96.199.1*:5906和vncviewer中输入202.96.199.1*:6是同一个连接PID.
多用户连接:

配置vncserver给多用户使用。在/etc/sysconfig/vncservers中最后行设置如下:
VNCSERVERS="1:admin 2:Icerjoe"
参考上文,你要为两个用户分别运行vncpasswd来设置口令. 并且在你的防火墙修改中,你应该明白VNC使用端口5901给连接1用,5902给2用等等,以此类推。
另:由于某些原因使.vnc中的带ID文件id号依序增加,可以在用户登录或用户注销时自动清除带id文件。
在/etc/rc.d/rc.local文件中添加命令:
rm -f /tmp/.X11-unix/X*
rm -f /.vnc/*.pid
rm -f /.vnc/*.log
这样,每次启机,系统会先把上次非正常关机时留下的临时文件删除。
或者在用户目录中编辑.bash_logout文件增加
rm -f /tmp/.X11-unix/X*
rm -f ~/.vnc/*.pid
rm -f ~/.vnc/*.log

6、linux访问windows远程桌面软件。
rdesktop。它提供linux对windows 2000、xp系统的远程桌面访问支持。
第一:查看系统是否已安装rdesktop软件
rpm -q rdesktop
第二:若没有安装,下载安装包,根据安装配置文件说明进行安装。一般都是先解压缩 tar zxvf packagefile
到解压路径执行./configure然后make 和makeinstall.
安装成功后,在/usr/local/bin下有rdesktop的可执行程序。

命令行中可用rdesktop -h得到命令帮助。
rdesktop -g 1024x768 -d 24hostname
其中 “g 1024×768”设置分辨率为1024×768,“d 24”设置真彩24 位,hostname为 Windows 机器的主机名或者IP 地址。在输入了Windows XP的用户名和密码后,就可以登录并操作远程的Windows系统。

vncviewer.
可参照vncviewer -h.
最简单的命令就是 vncviewer remotehostip.
--本文结束。


备注:VNC windows安装序列号

ux6y9-4x2ym-pbb8h-6syqc-z62wa

5D7L8-ZQXSA-2L5D4-4UFB4-PWDLA 55WPX-5MZSR-CBAVB-RD9R9-RFX9A
7SA9N-9JF3P-E8CW2-BH9JU-PMVQA YRN98-33SA3-MEAET-W5HTC-AGZLA
完全VNC技术参考:

http://www.servertechnology.cn/catalog.asp?tags=VNC

6、

Windows下通过xmanager远程桌面控制Linux

随着互联网的高速发展以及Linux企业应用的成熟,Linux被广泛应用于服务器领域,如何实现Linux的远程管理成为网络管理员的首要任务。我们经常见到的几种最为常用的<!--#include virtual="/server/_includes/ad/ad_1.inc"-->windows下远程管理Linux服务器的方法,基本上都是利用SecureCRT,F-Secure SSH 抑或是PUTTY等客户端工具通过ssh服务来实现Windows下管理Linux服务器的,这些客户端工具几乎不需要什么配置,使用简单,但是它们都无法启动窗口服务的程序或进程,也无法达到远程桌面控制。本文将介绍通过xmanager远程桌面控制Linux的方法和技巧。本文中所指的Linux系统,如无特别说明都以RedHat 9.0为例。

有两种方法可以实现远程管理Linux桌面窗口,其中一个就是是我们所选择的X显示管理器(X display manager)或者说xdm,另一个流行的解决方案是vnc。我选择xdm而不是vnc出于两点原因。第一,vnc要有个服务端的守护进程,为每个共享的桌面运行。第二,我已经有X服务器的软件安装在所有的工作站上,不想再添加额外的客户端软件了。

我们先来了解一些X系统方面的知识,X是用在大多数UNIX系统中的图形支持系统。如果你在你的Linux机器上使用GNOME或者KDE的话,你就正在使用X系统。它由X联盟(www.X.org)定义并维护。大多数的Linux用户使用的都是由XFree86 项目 (www.xfree86.org)提供的X Window系统的实现。xdm 是一个显示管理器,提供了灵活的任务管理功能。然而xdm通常被认为是“GUI的登陆屏幕,可以自动启动我的X任务”,我们会看到实际上它要更为强大。

xdm 使用X联盟的X显示管理控制协议,即XDMCP,来和X服务器通信。它允许X服务器从运行xdm服务的服务器上获得会话服务。

当使用xdm管理这些X任务的时候在设置上有些复杂。但设置xdm 可以得到本地的和其他服务器上的桌面了。我们下面将介绍服务器上配置xdm的方法和步骤,这里描述的配置允许任何的 XDMCP 客户访问 Linux 服务器桌面环境(当然了影响了X的安全)。

第一步,我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句:# * #any host can get a login window


去掉最前面的#号,成为


第二步,我们修改/etc/X11/gdm/gdm.conf文件,找到下面的语句:


将其中的Enable=false 改为Enable=true 或 Enable=1。
同时我们要确保存在下面的语句,因为177端口是我们要配置的xdmcp服务的监听端口,我们在后面配置xmanager将看到。


第三步,我们要修改/etc/inittab文件,将下面的语句


改为如下,如果原来就是id:5:initdefault:就不用更改。


同时,找到如下图文字所在的地方,


将它修改为x:5:respawn:/usr/bin/gdm,即如下图所示,


第四步,我们修改/etc/X11/xdm/xdm-config的最后一行,在displayManager.requestPort:0前面加上一个!号,结果如下


第五步,我们修改确保/etc/X11/xdm/Xservers的属性为444,/etc/X11/xdm/Xsetup_0的属性为755,在RedHat 9.0中,我们可以看到这两个文件默认的属性就是444和775,因此不用修改。

最后,如果我们的Linux机器配置有防火墙,为防止防火墙将通过177端口(即xdmcp服务)的数据过虑,我们必须加上如下的规则:
iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT

至此为止,我们在Linux下的配置xdm已经基本完成。但上面这些配置还只是x服务器端的配置,我们要想实现在Windows远程桌面控制Linux,还必须要
有Windows下的客户端工具,xmanager正是这样的一个工具,它是一个简单易用的高性能的运行在Windows平台上的 X Server 软件。我们现在来介绍xmanager的在Windows下的安装和配置技巧,这里我使用的机器是windows xp

我们先下载xmanager的安装文件,我下载的是xmanager1.3.9,安装后,在安装目录下,我们点击xconfig,选择xdm,如下图,选择”XDM Indirect”,在 host:后面填上我们已经配置好的Linux系统的ip,注意下面的XDMCP Port:177, 这就是我们在配置Linux服务器时必须保证 port=177的原因。


然后我们双击xmanager安装目录里的xmanager,出现下面的画面,


选择图中的linux机器,然后点击“连接”即可以连接到我们的redhat登陆桌面了。


输入用户名,确定后系统会提示让你输入密码,验证成功后就可以使用我们的redhat桌面了,效果如下:


本文介绍了windows下通过xmanager来远程桌面控制Linux的方法,并具体介绍了xdm和xmanager的配置和使用方法,希望给大家带来一定的帮助。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics