Linux 远程桌面的实现
先说一下本人的实现环境:
控制端:Ubuntu 11.04
被控制端:CentOS 5.X (服务器)
网上查了相关资料,总结方法如下:
1.如果只是简单的shell连接,即进入控制台模式
直接在自己的控制台下输入ssh -l 用户名 IP就行了。一般的服务器版的linux都默认装了ssh,如果没有就自己装一个。
2.启用图形界面
如果想想windows那样直接进入桌面的话,那就要在服务器端配置下ssh了。
进入/etc/ssh 修改里面的sshd_config文件,找到X11Forwarding 将后面的no改成yes 这样就启动了ssh的X转发功能。
3.利用VNC实现远程桌面查看
先在服务器端装上VNC,然后启动一下VNC,在命令行下输入vncserver就行了
[[email protected] ssh]# vncserverNew 'ccnit:3 (ccnit)' desktop is ccnit:3
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ccnit:3.log
注意标注的数字,我的机器因为之前就已经启动过vncserver,所以1.2都已经开过了,如果是第一次启动vncserver,会要你输入密码,然后默认第一次启动的应该是镜像1,记住这个数字,待会连接的时候要用。
服务器端启动VNC服务之后,在控制端就可以连接了,我的是Ubuntu,里面默认就有一个远程桌面连接,里面提供了VNC连接桌面,
在主机里面填上你要连接服务器的IP,在IP后面加上“:你刚才启动vnc服务的数字” 例如连接我刚才启动的vncserver 就填上 192.168.1.158:3
连接上后就会有验证,输入你刚才在服务器端启动vncserver时输入的密码就行了
如果你看到如下桌面,表示你已经成功了一半:
这是因为远程的vncsever默认的桌面环境是twm,也就是上图
如果想看到想服务器端真实的桌面,就要配置一下服务器端的vncserve的xstartup文件,将桌面环境修改为gnome或者KDE
服务器端修改/root/.vnc/xstartup文件(.vnc表示该文件为隐藏文件 ls -all才能看见)
将里面的文件替换成下文:
# more 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" &
startgnome&
#如果想启动KDE,改成startkde &
#恢复,改成twm&
DISPLAY=:1 gnome-session&
然后再启动vncserver,先vncserver -kill 然后再vncserver
如果你不想每次都要先从命令行启动VNC服务,可以将其设置为开机启动,下面的资料是我转贴的,我还是喜欢先用ssh直接连上,然后在启动vncserver
打开“系统设置”-->"服务器设置"-->"服务",勾选上VNCserver,“保存”。
修改 /etc/sysconfig/VNCservers
VNCSERVERS="1:root 2:phred 3:sysadmin" 1代表“桌面1”,root代表用户名;可同时启动多个用户桌面
VNCSERVERARGS[1]="-geometry 800x600 -alwaysshared -depth 24"
-alwaysshared代表允许多用户同时登录 -depth代为色深,参数有8,16,24,32。