1.安装H3C认证客户端
大二的时候就下载了的h3c802.1xClient.tar.gz,翻出来解压之。
tar -xvf h3c802.1xClient.tar.gz
- 你的H3C认证客户端名字可能不一样,记得把上面的h3c802.1xClient.tar.gz改成相应的名字,输入头几个字符后按tab键就可以自动补全
- 如果你还没有这个文件,通常在你们学校的ftp或者你们学校网络中心的首页可以找到,如果都没有,请google并且到你们学校的论坛投诉。
2.初始化配置
cd h3c802.1xClient
./pre.ps
./linux1x -c
接下来会问你几个问题来完成H3C客户端的配置。这些问题的答案依赖于每个学校的具体情况。
Current configuration is:
The way to initialize 802.1X authentication…….:multicast
Send all packets by multicast…………………:Y
Refresh IP address after connecting……………:Y
Save message and package to log……………….:N
Continue to configure your network connection arguments?(Y/N)
继续配置吗?继续的话输入Y然后回车
There are two ways to initialize 802.1X authentication:
1. Trap by broadcast.
2. Trap by multicast.
Please choose the way to initialize the 802.1X authentication :
选择认证方式,单播或多播?我们学校是多播,所以我选2.
Send all packets by multicast? (Y/N):
用多播方式发送所有数据包吗?我们学校选Y
Refresh your IP address after connecting? (Y/N):
认证成功后刷新IP地址吗?我们学校选Y
Save message and package to log?(Y/N):
保存消息和数据包到日志吗?除非你要调试网络或者监视数据包否则选N,如果不知道这是什么,选N。
Configuration has finished, do you want to save it?(Y/N)
配置完成了,保存吗?如果前面选错了,这是选N的话就不会保存错误的配置。
3.日常使用
./linux1x -d
如果不加-d,认证程序会占用控制台。第一次运行会要求你输入H3C认证用的帐号和密码。成功的话以后都不需要再次输入用户名和密码。
如果要修改登录用的用户名和密码,执行
/linux1x -p
4.常见问题
4.1.i386系统下找不到libstdc++.so.5
具体的出错信息我记不得了。
安装gcc-3.3-base_*_i386.deb,libstdc++5_*_i386.deb
- 我的系统是Debian,所以我的软件包是*.deb格式的,如果你的系统是red het,fedora,centOS,或者别的什么用rpm格式的系统,它们可能是*.rpm.
- 这时候你还不能上网,意味着你不能用apt-get或者yum之类的,我知道两种办法,一个是从安装光盘cd1上找,另一个是另找一台机器去ftp下载
- 这两个包应该在类似这样的目录下:/pool/main/g/gcc-3.3
- debian或者ubuntu,或者任何基于debian的发行版的cd1都应该有这两个包,如果是rpm系的发行版,请自行举一反三吧~
- 上述发行版的ftp,或者ftp镜像站,都能找到这两个包,下面是一些例子
- ftp://ftp.sjtu.edu.cn:21/debian/pool/main/g/gcc-3.3
- ftp://ftp.sjtu.edu.cn:21/ubuntu/pool/main/g/gcc-3.3
- PS:感谢上海交大FTP~这是我找到的最快的教育网源
- *代表了具体的版本号,当你读到这篇笔记的时候,你找到的可能和我的不一样。
- Nothing lasts forever.当你读到这篇文章的时候任何东西都可能已经改变了,多用善用搜索引擎——连Google都是会变的。
第 一次装deibna的时候,还不知道libstdc++.so.5在哪个软件包里,没有h3c也不能上网,不能上网就没有google……于是翻安装光 盘,在pool的gcc里面找到了libstdc++5_xxxx这个包,安装之,提示依赖gcc-3.3-base_xxxx,就在同一个目录里可以找 到,安装之。在i386的系统下这样就可以通过这一步了。
4.2.amd64系统下找不到libstdc++.so.5
安装lib32ncurses5_*_amd64.deb,lib32gcc1_*_amd64.deb,lib32stdc++6_*_amd64.deb
- 它们在/pool/main/g/目录下最新的gcc-XX目录下可以找到,下面两个地址是我写这篇笔记的时候的地址,当你读到的时候很可能已经改变了
- ftp://ftp.sjtu.edu.cn:21/debian/pool/main/g/gcc-4.3
- ftp://ftp.sjtu.edu.cn:21/ubuntu/pool/main/g/gcc-4.3
昨 天晚上装amd64的debian,上来先提示少libncurses.so.5(大概是这个文件名吧,具体又忘了)。用另一台机器去 ftp.sjtu.edu.cn翻,下下来用u盘cp过来安装,说还是少这个文件。我想也许linux1x要的是32位的 libncurses.so.5?又去上海交大翻32位的libncurses,弄来装,说架构不对。
在网上搜到一个帖子说,虽然可以用–force-architecture来强制安装,但是这样dpkg会用32位的libncurses代替系统原来的64位的,于是导致其他依赖这个库的程序出问题。
于 是考虑把32位的libncurses.so.5这个文件单独cp出来放在h3c802.1xClient的目录下给它用,进一步地,不如把 h3c802.1xClient依赖的所有库文件都拿出来放在它的.目录下单独给它用?这是一种丑陋的、和FHS背道而驰做法,但是对 h3c802.1xClient这种丑陋的程序,这样是最方便的。
一开始想的是从deb包里把所有的lib*解出来,但是当时我还不知道 dpkg的-X选项,于是采取了很傻的途径,我装了一遍i386,装好h3c802.1xClient需要的各种库,然后把/lib,/usr/lib和 /usr/local/lib都tar -cvf到一个重装系统的时候不格式化的分区,然后再次安装amd64。然后发现刚才我打包各个lib的时候不慎指向了同一个tar文件,所以tar里只 有最后tar -cvf /usr/local/lib得到的文件,实质上是一个空的目录树!
我决定不再做为了几个lib就装一次系统这种傻事了,静下来man dpkg,学会了用dpkg -X,把libncurse5,gcc-3.3-base,libstdc++5都解包了。
结果linux1x还是说找不到libncurses.so.5,那个文件就和它在同一个目录下!
好吧,至少我学到了linux查找lib的规则和windows不一样。
继 续翻上海交大ftp,在最新版本的gcc的目录下发现了很多名为lib32*_amd64.deb或者lib64*_i386.deb的包。从名字猜测, 难道是用来做架构兼容的?于是下载安装了lib32ncurses5_xxxx_amd64.deb,再次linux1x -c,报错缺少libstdc++.so.5,也就是说它找到libncurses了!
于是下载安装lib32stdc++6_4.3.2-XX_amd64.deb,和在i386下一样,dpkg提示依赖gcc3.3,而lib32gcc只有4.3,试着装lib32gcc1_4.3.2-XX_amd64.deb,成功了。
4.3.无法运行认证程序!
再次linux1x -c,不缺文件了,它提示无法运行认证程序。
这 个出错信息没有给出任何提示,幸运的是第一次安装h3c802.1xClient的时候我没有遇到这个问题,直接认证成功了,然后某一次重启之后运行就出 现了这个问题。因为登录成功过,所以我可以排除少文件或者没有配置正确之类的可能,问题应该出在运行环境中可变的因素上。在 h3c802.1xClient目录l了以下(我的.bashrc有alias l=’ls -l –color=auto’),发现一个renew.ps,于是
./renew.ps
然后linux1x就可以运行了
我计算机网网络学的很差,所以一直不明白这个问题的本质是什么。看起来renew.ps大概是绑定了网卡,然后刷新了dhcp客户端的一些东西,大概需要整整一分钟。
后来我还发现执行到
Listening on LPF/ethX/XX:XX:XX:XX:XX:XX
Sending on LPF/ethX/XX:XX:XX:XX:XX:XX
Sending on Socket/fallback
这里的时候就按ctrl+C结束,也可以让linux1x正常运行,后面那段漫长的dhcp操作是不必要的。
5.后记
写 这篇笔记的时候,在好几个地方挣扎是要写类似”如果你的h3c802.1xCilent客户端的文件名不一样,请把 h3c802.1xClient.tar.gz替换成相应的名字,输入头几个字符后按tab键就可以自动补全”这样的”newbie- compatible guide”,还是在文章的一开头用h1标签声明一段”如果你连搜索引擎都不会用,请回到安全的windows环境下,如果你逃跑的路上要尖叫,请自 便。”
后面的选择无疑很爽,但是我的知识从哪儿来的呢?从高二在一台K6上安装红帽子用kdeveloper自学C++的时候开始,我就习 惯了像食肉类猎食一样寻找和吸取知识。的确没有一个老师站在我旁边手把手地教我,但是如果没有前人把他们的知识写下来,我找不到任何东西,如果我找到的笔 记开头都是”如果你连汇编语言都不会,请恳求你妈妈给你买个算盘,如果你哀求妈妈的时候要哭泣,请自便。”我也不会有今天。
要不要做newbie-compatibility?这不是问题。每个人都曾经是菜鸟,每个人群中的老鸟在老鸟群中间也可能是菜鸟,每个领域的老鸟在另一个领域也可能是菜鸟。软件应该是自由的,如何使用软件和如何开发软件的知识也是。
我能为自由软件做什么?写更多更好的自由软件,并且时刻提醒自己这些软件不是给自己一个人用的。同时不要吝啬时间来写newbie-compatible的笔记来分享我得到的知识。
并且记住我永远是个菜鸟