月度存档: 五月 2007

Ubuntu中使用锐捷+L2TP协议VPN拨号上网全攻略

06.09 Update 把忘记的压缩包补上了,以及标明了一些不同网络环境下需要修改的地方

这段时间实在是事情一大堆,所以虽然19号就搞定了Ubuntu下面的VPN拨号上网,但是隔了这么久才写这篇文章。

在Ubuntu 6.10出来的时候,就装上了,但是在搞定了锐捷,能上内网之后,就搞不定用VPN拨号上外网了,所以就一直没怎么用Ubuntu。在160G的硬盘坏之后,就更没条件去尝试Ubuntu上网了。一个阳光灿烂的下午,去把硬盘换了个新的回来之后,过了一天Ubuntu 7.04的CD就到了,刚好,听说Ubuntu 7.04 Fesity在VPN支持方面做得比较好了,就把Ubuntu给装上了。但是学校的VPN拨号是用L2TP协议,而不是PPTP,因此找到许多文章都没有用,只能自己摸索,某天晚上,弄到3点钟,终于让我撞大运,给弄出来了。

好了,废话不多,开始正事。

1. 准备工作

首先要做的是把本机的IP给设定好,在“系统>系统管理>网络”里进行设置,选择“Wired conection”,然后属性,设置Configuration为静态IP方式,然后把IP、子网掩码和网关按网络中心给的设置设置好。

接着,切换到DNS选项卡,把网络中心给DNS服务器给添加进去。

2. Ubuntu中的锐捷认证

虽然锐捷官方也出了Linux下面的Linux认证工具,但是那个工具是会检测代理服务器,因此在Ubuntu认证完成之后,过一段时间会莫名奇妙的断掉,所以我们需要寻找能代替官方认证工具的认证工具(呃,有些拗口)。

万幸,已经有牛人也是用的锐捷认证,并且破解了官方的认证工具,使它不再检测代理服务器,这个认证名字叫做myxrgsu,我已经放在文章末尾的压缩包了。运行myxrgsu之后,输入用户名和密码,并选择自己的认证方式就可以认证成功了。注意,运行myxrgsu需要root权限。

XRGSupplicant 1.1.1
Ruijie Network CopyRight 2004-2005
Please input your user name:{用户名}
Please input your password:{密码}
Use DHCP,1-Use,0-UnUse(Default: 0):
Use default auth parameter,0-Use 1-UnUse(Default: 0):
Searching server…
Connecting server…
Authenticating…
{认证成功时的服务器消息}
Authenticate SUCCESSFULLY!
Please input ‘unauth’ to LogOff:

在锐捷认证完成之后,就可以上内网了。

3. 安装L2TP协议的VPN拨号工具xl2tpd及配置

在Linux使用L2TP协议的VPN拨号,可以使用xl2tpd,它的源代码可以在http://www.xelerance.com/software/xl2tpd/下载。

要使用xl2tpd,需要先编译,刚装好Ubuntu时,编译xl2tpd会提示缺少头文件,这个时候用别人的电脑下载一个linux头文件的包安装一下就行了,包的名字叫linux-kernel-headers_2.6.18-7_i386.deb,当然版本号可能不同。如果不高兴编译,也可以下载文章末尾的压缩,里面包含了我编译好了xl2tpd,把它复制到/usr/local/bin,并用chmod 777 xl2tpd把它改成可执行的。
继续阅读 »

Firefox与IE兼容性:getAttribute的返回值类型

在改AJAXRequest的过程中,碰到了个问题,应该算是Firefox和IE之间的兼容性问题。

提交表单时,往往需要先对表单进行验证,而这个验证的过程一般是放在form标签的onsubmit属性中。

onsubmit一般是由浏览器在form的submit动作发生时自动触发,但是如果表单由我们自己来提交,比如在AJAX应用中,就是由我们自己写程序将表单转换成请求字符串,再通过XMLHttpRequest发送到服务器,那么如果在此同时不丢掉表单验证的话,就需要我们自己来获取onsubmit属性,并去处理它。

在获取属性时,为了保证兼容性,我用getAttribute来获取标签的属性值,但是发获取了onsubmit属性之后,发现在Firefox和IE中使用getAttribute(“onsubmit”)所返回的返回值类型是不同的。

测试代码如下:

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

在Firefox中使用getAttribute(“onsubmit”)返回值的是一个字符串,而在IE中的返回值类型则是function,也就是一个函数,因此如果在IE中处理onsubmit,我们可以直接调用这个函数:

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

但是,在Firefox中,使用getAttribute(“onsubmit”)返回的是一个字符串,因此就不能直接这样使用了,而应该将字符串转换成函数再去调用:

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

如果把上面这段代码在IE中运行,那么会发现无论是否在输入框中输入值,都会显示“Error”。

因此,如果要解决这个问题,可以在使用getAttribute获取onsubmit属性值之后,判断返回值类型是否为字符串,如果是字符串就使用new Function将它转换成函数:

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

这样,就解决了使用getAttribute(“onsubmit”)返回值类型不一样的问题,对于其他回调函数如onclick也可以这样处理。当然,如果大家有什么更好的解决方案也可以提出来分享一下:)

使用VS2005调试ASP程序

很早之前就在PJ的blog上看到可以用VS2005调试ASP程序,但是没有写出具体的步骤,后来一次偶尔也让我找到了方法,但是一直没把它写出来,今天就把用VS2005调试ASP程序的方法写出来,希望对写ASP程序的朋友们有用。

首先需要说明的是,我所用的环境是Win2003+IIS6,PJ用的环境是Vista+IIS7+WPF,不过我想WPF应该是无关紧要的,主要是服务器支持服务端脚本调试。在此我以IIS6为例说明怎样开启服务端脚本调试。

先打开“Internet 信息服务(IIS)管理器”,找到要开启服务端脚本调试的网站,进入属性页,进入“主目录”选项卡,点击“应用程序设置”中的“配置”,进入应用程序配置,进入“调试”选项卡,选中“启用ASP服务端脚本调试(E)”,确定即可。

图片附件

配置完IIS之后,就需要用VS2005来调试程序了。当然安装VS2005是必须的步骤,这里就不多说了。

使用VS2005调试ASP程序可以在两种情况下使用,一是程序出错时调试,一是手工加载调试。

如果想在ASP程序出错时才用VS2005进行调试,那么可以在装完VS2005之后直接测试ASP程序,如果程序出现错误,会自动提示是否使用VS2005进行调试。

图片附件

一个测试ASP程序,a=1,b=0,因此会有除0的错误,提示是否使用VS2005调试,选择是,使用新实例,如果已经打开了VS2005,则也可以直接用已经存在的实例来调试

图片附件

错误信息,可以选择中断或者继续

图片附件

中断,光标停在出错行,下部用红框标出的是变量监视窗口,可以查看当前上下文中的变量

另一种情况是在还没出错的情况下进行调试,这时需要先在浏览器中访问过需要调试的文件,因为这样ASP代码才会载入内存,然后打开VS2005,选择菜单中“工具->附加到进程”,然后选择w3wp.exe,如果在进程列表中没有找到w3wp.exe,可能是因为你还没有运行过ASP程序。

图片附件

这时可以在左边看到内存中存在的脚本文件,可以选择要调试的文件打开,然后进行下断点之类的操作,从下图可以看出,我下了个断点在a=1,运行时程序停在了a=1这一行。

图片附件

如果没有看到脚本资源管理,可以用菜单“调试->窗口->脚本资源管理器”来打开,或者使用快捷键Ctrl+Alt+N。

至此,我们就可以使用VS2005来调试ASP程序了,相信这会在ASP程序开发过程中给大家带来很大的方便。

解决“iTunes不能浏览该电脑上的专辑封面”

重装完系统之后,再把iTunes装好,把原来的资料库恢复过来,打开iTunes,发现不能用iTunes7中的Cover Flow显示了,那么大一块黑乎乎的地方告诉我:iTunes不能浏览该电脑上的专辑封面。

在网上找了下,也没怎么找到答案,后来发现了一丝丝原因,有一个地方可能是加速没开,建议在显示属性里把硬件加速开到最高,立马想到很可能是这个原因,因为我装的是Windows Server 2003,默认显示加速都不是最高的。

马上把显示属性硬件加速开到最高,然后再运行DirectX诊断工具,将DirectDraw、Direct3D和AGP纹理加速启用。

终于,iTunes的Cover Flow又回来了!