分享

linux下的远程访问

 开花结果 2010-11-02
之前一直用的是windows,远程也用得很少, 用也就只用一下windows的远程桌面。由于现在想把java开发环境转移到ubuntu 8.04,突然想在本本的windowsxp上远程到ubuntu进行一些简单的工作,立刻想到了公司里redhat9用的是vnc。
在我的ubuntu8.04上整vnc,弄了半天都没能弄出个桌面出来,按照网上的方法改来改去都无效,于是就想用其他的linux远程方式。
接下来几天,将linux的远程技术几乎看了个遍,也尝试了个遍, 有的成功了,有的失败了,不过总得来说已经能满足我的需要了,写个总结来鼓励一下自己。

linux远程访问方式:
在进行以下各类尝试之前, 务必先要安装xinetd;
下列顺序大概是从命令行到桌面,先是ubuntu自带的,然后是另外安装的。
sudo apt-get install xinetd
1)telnet, 远程命令行模式。ubuntu自带了telnet命令,但没有这个服务,因此先要安装:
sudo apt-get install telnetd
接着创建一个service文件:
vi /etc/xinetd.d/telnet
贴入如下内容
引用
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}

最后, sudo /etc/init.d/xinetd restart
这时在windows的命令模式输入telnet, 查看帮助, 试着登录ubuntu ok
telnet用起来超级简单,可惜安全不够, 明文密码传送, 因此已经不被推荐。

2)ssh,同样是远程命令行,但通过打开X11Forwarding,可以启动ui程序。
安装 sudo apt-get install openssh
配置和应用可以参考
http://wiki./index.php?title=UbuntuHelp:SSHHowto&variant=zh-tw
http://wiki./index.php?title=UbuntuHelp:AdvancedOpenSSH&variant=zh-tw
windows这边安装一个putty,就能以ssh方式远程到ubuntu了。
ssh建议用publickey+privatekey的方式来加强安全性,同时关闭密码验证以及禁止root登录。
sshd_config中设定:
引用
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin yes

总体感觉ssh很好很强大,还具有良好的安全保障,有一种“有了ssh别无所求”的感觉。

3)ubuntu自带的远程桌面, 其实也是vnc的一种, 叫做vino-vnc,通过netstat -lutp可以查看到该网络服务的名称。开启非常简单,系统->首选项->远程桌面,够选 允许其他人查看您的桌面,允许其他人控制您的桌面,需要密码的话再够选 要求用户输入此密码。
这个远程桌面跟windowsxp下面的感觉很相似,都是单session的, 就是多个登入者都是同一个session,因此另外一个登入就会将前面一个挤掉。桌面效果还不错,就是感觉速度不如windows的远程桌面。
ubuntu自带了一个终端服务客户端和远程桌面查看器,前者功能比较强,可以连windows的远程桌面。如果只是简单的vnc连接,用远程桌面查看器 即可。

4)xdmcp,xwindows的linux一般都自带的,ubuntu自然也就自带。
可参考http://blog./?p=5497
设置很方便,只要开启即可:
打开gdm.conf文件:sudo pico /etc/gdm/gdm.conf
其中允许xdmcp:
[xdmcp]
....
Enable=true
取消注释:
RemoteGreeter=/usr/lib/gdm/gdmlogin
注意到Port=177,xdmcp通过该udp 177端口。
最后 sudo /etc/init.d/xinetd restart ,以生效

启动xdmcp之后,linux访问只需要 X :1 -query 192.168.100.xxx ;
对于ubuntu,可以在 系统->系统管理->登录窗口, 添加xdmcp远程访问 ,从而可以在登录时选择xdmcp远程。
对于windows, 需要安装x-win32或 xmanager。
从ubuntu本机xdmcp登录,以及windows上用xmanager连入,我都试了下, 桌面效果还不错, 就是觉得速度有些慢。

5)VNC,除了xdmcp,估计linux上应用最为广泛的就是vnc了。前面说到了ubuntu自带一个vino vnc, 可惜它是单session的,我想试试muliti session,那么real的vnc是支持的。 ubuntu上安装:
sudo apt-get install vnc4server
安装和配置可以参考http://tech./art/737/20070521/1086143_1.html
因为vnc默认情况下只能得到一个只有命令行的灰色背景界面,网上大部分办法都是修改xstartup的最后一行twm& ,gnome改成gnome-session &;其他的,kde就改成startkde &
可惜照样是得不到桌面,本以为是无望了,却突然发现root下面也有一个.vnc目录, 心想是不是要用root身份登入运行vncserver?
马上切换用户:sudo su
先修改/root/.vnc/xstartup(如果没有这个文件,先运行一次vncserver),最后一行注释掉twm&, 加上gnome-session &
最后,启动vncserver。
在windows上用tightvnc连入, 果然是可以了, 只是报了一个错误:gnome守护进程设置失败。

后来得知对于非root用户,可以这样改
修改~/.vnc/xstartup, 
引用

xrdb $HOME/.Xresources
xsetroot -solid navy # Choose your color
x-window-manager &
gnome-panel 2> /dev/null &
xterm &

之后就能看到vnc的桌面了,但只有一个panel, 就是桌面上方的那个菜单,不会报错。试验了一下,ui程序运行没问题。

总得来说,vnc的安装和配置从网上的资料来看很简单,但实际操作碰到了许多问题,比想象的麻烦, 费这么多功夫最后的效果还不如ubuntu自带的那个vino-vnc。

6)xvnc, 其实就是将xdmcp和vnc结合了一下,
看看这里的VNC Server with Login Screen via GDM
http://wiki./index.php?title=UbuntuHelp:VNC&variant=zh-tw#General_Security
引用

$> sudo pico /etc/xinetd.d/vnc

service vnc
{
        disable = no
        socket_type = stream
        protocol = tcp
        wait = no
        user = nobody
        server = /usr/bin/Xvnc
        server_args = -inetd :1 -query localhost -broadcast -once -fp /usr/share/X11/fonts/misc/ -securitytypes=none -desktop=vnc://MyDesktop/
}

其实就是基于xinetd的一个服务,从server_args得知调用了X,就是xdmcp。这个服务开机会自动启动的。

试用的结果, 感觉跟xdmcp差不多。

7)freenx,nxserver的GPL版,应该就是xdmcp类似,由于采用了基于xwindows视频和图片的压缩技术,降低了对带宽的要求,因而速度也提高了不少。
介绍的话还是看看nxserver的产品介绍:http://www./products.php

本来很看好很期待,结果经多次努力无效, 始终就是连接不上。
由于freenx在ubuntu的源里面没有,需要手动添加,我这里找了个介绍8.04怎样安装的文章:
http:///showthread.php?t=467219
另外是ubuntu中文论坛的一个朋友的经验分享:
http://forum./viewtopic.php?p=842056#842056

综合:
对于命令行而言, ssh绝对够用,sftp、scp、 ssh +X已经可以做大部分事情了, 安全可靠,而且也很简单;很多应用可以利用ssh的通道来提高安全性,比如ftp和vnc。
而对于远程到linux的桌面,xdmcp就还不错了,很常用又不用额外安装,vnc就无所谓装不装了,对于ubuntu来说自带的vnc好于其 他vnc,可惜只能单session。freenx不知道效果会怎样,期待有更好的速度表现,决定等等freenx有升级后再去试试。
以我的试验感觉, 桌面方式总不太稳定, 很容易就让图形程序失去响应, 这也可能是linux的图形核心还不够完善。而命令模式很稳定, 毕竟年代久远,早就成熟了。因此对于远程而言需要首先考虑用命令模式, 这也有利于自己学习命令。

牢骚:
由于官方资料不齐,碰到的问题找google,找到的文章有些是感觉对不上, 不是一些配置文件找不到,就是文件路径不对;更有的文章,你照着做也出不来, 卸载再安装重新来过,还是不行。也罢, 够用就行, 十八般武艺不需要都会。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多