[Ubuntu-zh] Wine Dr.com最新进展: 成功支持Dr.com V5.2.0 8021x版, 欢迎一起努力支持其他客户端 Was: 求协助proof of concept, 证明dr.com可以在wine+wpcap proxy上运行

Qian Hong fracting在gmail.com
星期三 五月 16 04:28:34 UTC 2012


Hi all,

之前我发过 <<Wine dr.com 求协助测试>> 这个主题, 得到很多朋友的帮助和支持. 经过一
段时间的研究, 我们已经有了很大的进展, 我们需要的proof of concept已经完成. 我们成
功地把winpcap的部分内部api 移植到linux下, 支持了一种drcom客户端. 过程很曲折, 本
来想分享一下研究的思路和解决问题的经过, 不过后来发现很多问题的解决实在是因为运气
好, 没有什么特别值得分享的, 所以作罢. 顺便在这里抛个砖, 有兴趣加入开发的朋友可以
从阅读winpcap的源代码和 wine-winpcap-wrapper[1] 的源代码入手.

虽然我们的proof of concept完成了, 但是要推动wine官方支持winpcap和相关的网络认证
客户端, 还需要更多用户的参与, 至于为什么希望wine官方支持winpcap, 又有很多技术上
和非技术上的原因, 完全解释清楚又需要花一整篇文章的篇幅了, 很遗憾我目前没有时间好
好解释. 愿意帮忙的朋友, 请往下看就是了 ;-)

为了避免前文老的测试步骤造成误导, 我重新开一个主题, 既是对旧主题进行结贴, 也带来
新的问题请大家关注和帮助.

原文<<Wine dr.com 求协助测试>>曾发送到多个邮件列表, 因此现在结贴也要每个列表都结
一下. 请重复收到邮件的朋友见谅!

= 以下是正文 =

Wine Dr.com v5.2.0 802.1x版成功, 其他版本(v3.7x) 和其他客户端( 安腾, 翼迅, 闪迅,
徐州电信) 仍有待研究, 欢迎加入.

Dr.com有多个版本, 非802.1x版无须使用以下方案, 以下方案解决的是802.1x版的问题.
目前以下方案成功支持了广外版的Dr.com v5.2.0, 在两个不同的学校成功认证.

================
以下的方案仅仅是 *临时方案* , 最理想的情况是wine官方支持 winpcap, 这样以后的用户就不用折腾了.
================

0. 在windows下确认广外版的Dr.com v5.2.0 是否支持你们的学校, 如果支持的话就往下看
Dr.com v5.2.0下载地址:
http://www.gdufs.edu.cn/serviceguide/userwebguide.aspx?NID=257

1. 务必将wine升级到1.5.4或以上版本, 1.5.3也不行

2. 从 http://code.google.com/p/wine-winpcap-wrapper/source/browse/ 下载以下四个
文件:
packet.dll.so packet.dll.fake wpcap.dll.so wpcap.dll.fake
$ sudo cp packet.dll.so /usr/lib/wine
$ sudo cp wpcap.dll.so /usr/lib/wine
$ sudo cp packet.dll.fake /usr/lib/wine/fakedlls/packet.dll  #注意改名
$ sudo cp wpcap.dll.fake /usr/lib/wine/fakedlls/wpcap.dll  #同上,注意改名

3. 切换到root帐号完成后续的操作
$ sudo su
# 注, 使用root权限运行wine是个坏习惯, 请移步这里看如何避免使用root来完成一些必要# 的网络操作:
http://wiki.winehq.org/Ping

4. 安装 Dr.com v5.2.0
# wine Dr.com-blabla.exe #换成相应的drcom安装包名字


5. 启动 Dr.com
# cd ~/.wine/drive_c/Drcom/DrUpdateClient wine DrMain.exe

6. 在网络管理器里点击"自动以太网"/"auto eth0"进行连接, 或者在命令行下动态获取ip

7. 等获取到ip之后, 使用Dr.com进行认证.
第一次认证可能会出错提示: "获取用户属性超时, 请检查网络防火墙udp端口61400配置" 忽略这个错误, 反复登录两三次应该就可以成功联网了.
(这应该是bug,我们还在研究中)

================
注: 上面的方案仅仅是 *临时方案* , 最理想的情况是wine官方支持 winpcap, 这样以后的
用户就不用折腾了.
================

如果你能帮忙测试, 并且确认drcom v5.2可以在windows下认证, 那么,不管上面的方案是否
支持你们学校, 都请发个信告诉我:
fracting AT gmail DOT com

如果你确认上面的方案可行, 请帮助推动wine官方支持winpcap.
很简单, 只要到wine的bugzilla注册一个帐号, 把自己添加到Bug 21571的CC列表中:
http://bugs.winehq.org/show_bug.cgi?id=21571
(添加自己到CC列表的方法很简单, 就是什么话都不说, 直接点击"Save changes"就好了)
没有必要的情况下, 请不要在bugzilla上留言, 避免造成信息噪音, 避免好心做坏事 ;-)

如果测试之后发现, 你们学校Windows下也不支持drcom v5.2, 那么也请继续留意或加入:
http://code.google.com/p/wine-winpcap-wrapper/
我们以后会完善packet.dll的api, 支持更多drcom版本
欢迎clone这个项目, 也欢迎报bug和提交补丁.
代码ugly又buggy, 一方面是时间问题, 另一方面实在是个人水平能力问题, 欢迎指点.
也欢迎帮忙clean up ;-)

另外, 这个版本的代码不会直接向上游反馈, 解释清楚又需要花费很多篇幅了, 只能简单地
说, 目前最重要的仍然是proof of concept, 尽可能支持尽量多的客户端.
当然, 如果有朋友认为比起得到wine上游的支持, 自己另起炉灶是个更好的主意, 并且 *愿
意接手维护发展* 这个项目, 我也很支持 ;-)

如果你们学校使用的是其他基于winpcap的客户端, 例如闪迅, 翼迅, 安腾, 徐州电信, 也
欢迎一起来研究.  其中有的客户端需要创建虚拟网卡, 例如徐州电信, 以上方案还不够,
我们需要研究出创建虚拟网卡的方案.

注, 可能有的朋友想到给wine上游报bug, 但是校园网客户端的问题比较特殊, 短篇幅内解
释不清, 所以报bug之前请先与我联系, 避免报无效的bug, 谢谢.

欢迎转发转载, 如果你看到的是转载后的版本, 可以通过邮箱和我联系: fracting AT
gmail DOT com
如果你是在邮件列表里收到我的邮件, 有什么问题直接回复就好了, 我会继续跟进.

谢谢各位关注过支持过和帮助过的朋友!

[1] http://code.google.com/p/wine-winpcap-wrapper/

--
Regards,
Qian Hong

-
Sent from Ubuntu http://www.ubuntu.com/


-- 
Regards,
Qian Hong

-
Sent from Ubuntu
http://www.ubuntu.com/


关于邮件列表 ubuntu-zh 的更多信息