Gnome 远程登录注销时很慢的解决方法


笔记1——问题描述:
 

远程登录 Gnome 时点注销后 gnome-panel 失去响应,至少要等 5 分钟才出现注销框,这期间系统并没有死,可以用右键打开 Terminal 来启动程序等等,唯独 gnome-panel 没有响应。
假如坚持等到注销框出现,但点击取消注销回到桌面,那么此后如果再次点击注销,则立刻就会出现注销框。
换成 KDE,其他设置均不变,却没有这个注销很慢的问题。
这究竟是怎么回事?网上搜也没搜到个有用的结果,从原来的 RH8 到现在的 RHEL3 都有这个情况,郁闷。


笔记2——问题深入: 

通过实验发现了一个很奇怪的现象:
A 机器:内网静态 IP。
B 机器:通过 NAT 动态 DHCP 得到内网 IP。
且 A、B 机器的 IP 均与 C 机器的 IP 处于同一个内网网段。
如果从 A 远程登录到 C,注销 Gnome,需时长达 5 分钟。
如果从 B 远程登录到 C,注销 Gnome,仅需时 1 秒钟。
A、B 均为 WinXP SP2 系统,且使用相同的 Xserver software,究竟为什么差别这么大?


笔记3——问题解决: 

由于实在是搞不懂了,于是只好使出最后一招 TCPdump 了一下……原来竟然是 Gnome 冤家路窄遇上 WinXP SP2 Firewall 而造成的!

正常的 XDMCP 连接中 Xserver 端应该只监听 TCP 6000 端口。所以无论是当初 WinXP SP2 的防火墙自动跳出询问时允许了 Xserver software 访问网络,还是手动在 WinXP SP2 的防火墙例外里添加了 Xserver software 程序,无论哪种其实都仅仅为 Xserver software 打开了 TCP 6000 这一个端口而已。
对于 KDE,这已经足够了。但诡异的 Gnome 在注销的时候会向 Xserver 的 TCP 16001 端口发送莫名其妙的连接请求。(原因和作用未知,KDE 不需要)
如此无理且没有经过合法备案的请求自然被 WinXP SP2 的防火墙拦下,可恶的是收不到响应的 Gnome 却又不断等待下去,导致 gnome-panel 陷入假死的状态失去响应,直到超时……
明确了原因以后,解决办法自然简单了,在防火墙的例外里加入允许 TCP 16001 端口的规则即可解决。
(晕阿,这么一个烂问题困扰了我几代 Linux 系统)
PS:上述实验中一个有趣的地方,也可以算是巧合吧,即笔记2中的 B 机器同样也打开了 WinXP SP2 防火墙,但为什么却不受影响呢?原因其实很简单,因为 B 机器是通过 VPN 连接到内网的,既然这是一个可受信任的连接,所以便在这个 VPN 连接上关闭了防火墙以减轻 CPU 的运算负担。

呵呵,当初不经意间做出的小设置最终引出了这个困扰我很久的大发现~~

Advertisements

About AyuanX

Big Brother is watching you! Yes, you!
This entry was posted in 無関別々 and tagged , . Bookmark the permalink.

3 Responses to Gnome 远程登录注销时很慢的解决方法

  1. 隆隆 says:

    隆隆…是夸胸很大么?还是说很长? 是什么东西??
     

  2. AyuanX says:

    当然是说你了 ,笨啊

  3. roxy says:

    路过.
     
    福山さんの歌
    私もすきで~~す。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s