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 mailing list ubuntu-zh@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh