以前用njit-client的时候,会提示版本太旧,学校要求的iNode版本是 V3.60-E6307,不过学校提供的6307版的iNode客户端会45秒掉一次线。但是将他们配合使用,先用iNode连上网,然后在45秒之内用njit-client拨号,倒是可以上网,就是太麻烦。 既然njit-client只是提示版本太旧,那把版本号改了就应该可以了吧?于是就试着改版本好,然后重新编译安装了一遍。 首先下载最新的njit-client源码包,(下载完整源码,即download as tar.gz那一项)修改src目录下 auth.c 文件,大约在33行左右,把版本号修改成 3.60-6307: 1
2
| const char H3C_VERSION[16]="EN V3.60-6307"; // 华为客户端版本号
const char H3C_KEY[] ="HuaWei3COM1X"; // H3C的固定密钥 |
然后运行help 按照提示来就可以了。 然后参照帮助文件: [从源代码编译]
为方便大家研究讨论,我们已将客户端源代码随编译好的可执行文件一同发布。
进行编译之前需安装的几个开发包如下:
对应Ubuntu/Debian的是:
sudo apt-get install libpcap-dev libssl-dev
对应Fedora/Redhat的是:
yum install libpcap-devel openssl-devel
从源码包开始编译客户端的命令为:
tar xzf njit8021xlient-1.0.tar.gz
cd njit8021xlient-1.0
./configure
make
安装:
make install
注1:默认安装至/usr/local目录,需要root管理员权限
注2:可以通过设置DESTDIR将编译好的文件输出至临时文件夹,然后压缩打包
make install DESTDIR="/tmp/临时文件夹"
...
cd /tmp/临时文件夹/
tar xzf njit8021xlient-1.0-i386.tar.gz . 安装完成后在/usr/local/sbin目录下面,而不是帮助文档里说的/usr/local目录。 然后在找到RefreshIP.py,重命名为njit-RefreshIP,复制到njit-client所在目录。在用 1
| sudo njit-client account password |
就可以联网了。 因为是64位系统,RefreshIP不能用,会报如下错误: 1
2
3
4
5
6
7
8
9
10
11
| File "/usr/bin/njit-RefreshIP", line 41, in <module>
ac.service = GetProperty('ServiceName', ac.obj, 'org.freedesktop.NetworkManager.Connection.Active')
File "/usr/bin/njit-RefreshIP", line 28, in GetProperty
return dbus.Interface(object, 'org.freedesktop.DBus.Properties').Get(interface_name, property_name)
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 70, in __call__
return self._proxy_method(*args, **keywords)
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
**keywords)
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Property "ServiceName" of interface "org.freedesktop.NetworkManager.Connection.Active" isn't exported (or may not exist) |
不过貌似联网依然正常,就没去管它了。 为了易用性,创建一个脚本: 1
2
| #!/bin/sh
njit-client account password >/dev/null 2>&1 & |
随便保存一个名字,比如njitclient,注意不用和njit-client同名,放到/usr/local/bin或者其他环境变量包含的路径,然后直接 就可以联网了,很方便,而且没有讨厌的不能关闭的终端了。 附上我编译的njit-client: njit8021xclient-1.1-hnu_amd64.tar |