淘客熙熙

主题:求教方家:关于remote desktop connection和SSH remote port forwarding -- 孤子

共:💬9 🌺5 新:
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 求教方家:关于remote desktop connection和SSH remote port forwarding

距离成功就一步之遥了,却怎么也搞不定,只有求教各路高人了。

俺学校的机子(SchHost)是Windows XP SP2,家里面的机子(HomeHost)是Unix类的系统(Mac OSX和Linux)。HomeHost通过Cable Modem连上互联网。而学校有防火墙,滤掉了所有对校内机子的主动访问,只允许校内机子主动访问外面。学校提供VPN,让校外的机子可以连接和访问校内的资源。但是通过VPN连接的速度比较慢,一直用得很不爽。加之俺在Linux下访问学校VPN Server一直没搞定(以前曾经连上并用过,但学校VPN Server升级后,俺怎么连都是ppp client以信号15退出)。在不爽了很久之后,俺终于决定要想办法绕过学校的防火墙来通过HomeHost控制SchHost的桌面。

方法有两种。一种是用VNC。SchHost装VNC Server,HomeHost装VNC Client。让VNC Server定时发起向VNC Client的主动连接而VNC Client工作在Listen模式。俺试过这种方式,可以连上。但不知什么原因,只看到个黑屏,连登录界面都没出现。并且Mac OSX上没有Native的Client,安全性也不太好,所以基本放弃了这种方式。

另外一种是用SSH的Remote Port Forwarding。俺在SchHost上装了Putty,设置了计划任务,让Putty在指定的时间段内以一分钟一次的频率主动连接HomeHost的SSHD服务端口(俺设的是14671),成功后就将对HomeHost:13389的访问转发到SchHost:13389(俺将Terminal Service的端口改到了13389)。俺在Cable Modem上设置好了对14671端口的转发,然后运行SSHD监听14671端口。很快SchHost和HomeHost间的SSH连接就建立好了,TCP Tunnel也成功建立了。

然后俺就在HomeHost上运行Remote Desktop Connection,访问localhost:13389,SchHost的登录界面顺利出现了,说明Windows的Remote Desktop Protocal正确运行了。这时候如果俺输入错误密码或者点按Cancel,Remote Desktop Connection可以正确退出。但是如果俺输入正确的密码,正常的话就应该出现SchHost的桌面,但是不知道什么原因,结果却是画面停止不动,仿佛连接忽然间中断一样。

俺怀疑是Loopback接口(lo)的MTU的问题。因为在HomeHost这端是访问localhost:13389,在SchHost那端应该也是访问的localhost。在HomeHost这端lo的MTU是16K,SchHost的Windows不太清楚,估计是32K,无论如何,都会比以太网口缺省MTU的1500大。这样如果只是小数据量的传输就不会出问题,比如刚开始的登录界面就顺利出现。而一旦大数据量传输,两个Host就会送出很大的数据包,结果就被网络上的Router给drop掉了,导致连接中断。

Unix类系统中lo的MTU很容易改。但是俺将HomeHost的lo的MTU改到1500以下,甚至1000,仍然出现同样的症状。而在SchHost上,俺只知道如何改以太网口的MTU,lo的MTU却不知道怎么改。

查了MS的各种补丁信息。在SP2中,Terminal Service如果是访问localhost的端口,会有访问拒绝的问题。但这个已经有补丁了,而且俺现在能够连上SchHost的Terminal Service,说明补丁已经打上了,所以应该不是这个问题。

各位有没有谁遇到类似的问题啊?俺在这里手捧鲜花静候各路高人啦!

家园 牛啊。

我只试过用ssh开xwindow,没反过来弄过。不过我记得当时开xwindows的时候,ssh里面要设置xwindow tunneling那个选项,不然就报告某个东西broken了。不知道这个对你是否有帮助。

家园 这个是X11 Forwarding

也是端口转发的一种吧,不过俺这种情况好象用不上。

查了一下,似乎各种VPN都存在MTU的问题。明天先尝试把SchHost的以太网口MTU改到1400试一下,这应该低于大多数网络路由器的MTU允许值了。

家园 我是想说在windows下

是否也有一个类似x11 forward所需要的port呢?你现在建立的port是否只用来传数据?就比如没有x11 forward,你用ssh登录unix,就只能telnet, ftp。

一点不成熟想法。

家园 我觉得loopback的mtu关系不大

mtu设置不当好像是导致数据包碎片,应该不会出现这种情况。况且这种情况数据包走的是不是LOOPBACK DRIVER也是个问题,毕竟数据包还是在物理网卡之间传播的,数据包在到达lo之前,包的size应该被物理网卡的mtu限制住了,lo的大mtu应该不会是问题。

我也用ssh tunnel, 然后访问本地端口,没有听说过要注意lo的mtu,不过我都是影射的只有80,21端口,没有试过RDS。

顺便问一下 windows的机器不是用的无线连接8,我以前用RDS连接无线网路的机器,出现和你描述一样的问题。原因是服务端启动RDS后,无线网络会被自动切断。

我不是专家,思维混乱随便说说,不要扔鸡蛋哦

家园 不是无线网

是100M的以太网。

路由器在遇到大数据包的时候会自动拆包分解成小包。不过对于tunnel这种加密信道好像就会出问题,而只能是tunnel两端来设置MTU。具体因为什么原因导致这种情况,俺也不是很清楚。只是昨天查到Cisco的VPN设备的各种问题描述时看到有这么一条,大意就是说在这种情况下如果包被拆了的话,包在tunnel两端的什么设置就不匹配,就会被丢掉。

俺自己也怀疑lo的MTU不是问题。只是看到MS自己说在win2000上127.0.0.1这个地址存在这种问题,导致TCP Timing出问题。不过我的是winxp sp2,应该不会这样。看了cisco的东东后,俺打算把以太网的MTU改到1400试一下。网路上有些路由器,比如T1等链路的,MTU都只有1400多。

俺也用过无线网络连RDS,当时也是出现同样的问题。俺当时是把MTU设到1444解决问题的。不过无线网络是在校内,所以俺可以用ping来测出最大的MTU。学校也是够狠的,校外来的以及发往校外的ICMP包一律滤掉,搞得俺现在就没法测,只能靠猜了。

家园 情形类似

只是unix和win的说法不太一样,unix下叫display,win下就是端口,实际上是一样的。

Unix下本地显示用的是display0,这个display0实际也是个TCP端口,是5900。x11 forward也就是转发5900端口。

家园 如果你还没有成功,见内

你这种联法我以前做过,不过是两台windows机之间,可以登陆成功。

建议你可以试试把家里的机器带到学校直接连上lan,看看你的linux/apple下面的remote desktop connection能不能登陆,以排除掉client的问题。如果不方便带到学校也可以试试玩玩vnc over ssh tunnel。

为了确定是否是mtu的问题,你可以试试在ssh tunnel上用大包来回ping看是否通。

家园 VNC over SSH tunnel是一样的问题

学校封了ping包,ping不通。我只能两边ping,各看一部分。从HomeHost这边到我能看到的最后一个router,大包都没问题。从SchHost出来的第一个Router遇到大于1372的包就要拆包。所以我估计是那个router引起的问题。前天把SchHost的以太网口的mtu设到1400看来都还大了,今天我设到1300再看一下。

昨天ping的时候顺便测了下学校VPN的MTU,居然只有100多,难怪那么慢!

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河