在linux下使用锐捷客户端连接校园网(以广州大学为例)




锐捷是很多大学上网的认证客户端,在windows上使用麻烦,而linux则因用户较少,版本已经很久未更新,使用起来更是磕磕绊绊,总结下来还是有不少地方需要踩坑的。

使用

安装

锐捷客户端的下载在各大学校的网站都有,以广州大学为例子,只要开通了网络端口,直接将网线连接到电脑,然后任意点开一个网址就可以跳转到锐捷客户端下载界面,下载选择linux版本即可。

然后进入终端,输入:

1
cd Downloads

进入下载目录,下载下来的文件是Linux锐捷客户端_V1.31.zip,用一下命令解压:

1
unzip Linux锐捷客户端_V1.31.zip

没有unzip命令的需要先安装:

1
2
3
4
5
# Ubuntu/Debian
apt install unzip

# CentOS/Fedora
dnf install unzip

解压后进入解压目录:

1
cd Linux锐捷客户端_V1.31/rjsupplicant

先给锐捷运行脚本赋予执行权限:

1
chmod +x rjsupplicant.sh

然后运行脚本检查一下网卡:

1
sudo ./rjsupplicant.sh -l

输出结果可能像这个样子:

1
2
3
4
5
6
7
8
9
10
sysctl: write error: Bad file descriptor
sysctl: write error: Bad file descriptor
sysctl: write error: Bad file descriptor
版本 RG-SU For Linux V1.31
认证方式 有线认证
认证网卡
用户名 �
----------------------------------------
网卡列表 [1] enp4s0f2
[2] virbr0

上面三句sysctl: write error: Bad file descriptor是报错,登录锐捷的时候也会有这样的报错,不过不影响使用,所以不用理会。

重要的是下面的网卡列表,可以看到有两个网卡,第一个enp4s0f2就是接下来需要用到的,这个是新版本的linux系统网卡的默认名字,而在旧版本的linux系统中,这个默认的网卡名字叫做eth0,因为锐捷客户端版本采用的是老式的名字,所以使用eth0来认证的时候就不能通过了,也就是现在网上很多教程不能用的原因。

值得一提的是,直到ubuntu 14.04都还是用eth0,而ubuntu 16.04之后就已经被变成enp4s0f2

更改网卡名称

因为就算使用锐捷客户端指定用第一个enp4s0f2网卡,锐捷在运行的时候还是使用eth0来认证,所以就需要先将网卡名称改为eth0

当然了,可以先尝试3. 登录锐捷能不能认证成功,如果不成功再更改网卡名称也不迟。

先使用一个临时更改网卡名称的方式进行更改,好处是不用重启:

1
2
3
4
5
6
7
8
# 关闭网卡
ifconfig enp4s0f2 down

# 更改网卡名称
ip link set enp4s0f2 name eth0

# 打开网卡
ifconfig eth0 up

这种更改方式即时生效,不过下次重启就失效了,所以还需要进行永久更改。

更改默认网卡名称可以通过添加一个配置文件来指定新的名称,先新建一个文件:

1
sudo vim /etc/udev/rules.d/10-rename-network.rules

添加以下内容:

1
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="硬件地址", NAME="eth0"

其中,ATTR{address}里面的硬件地址可以通过这条命令获得:

1
ifconfig

输出结果中的ether 80:后面的字符串就是需要的地址,大概长这样子:fa:5a:01:49:78

登录

锐捷登录认证不是简单运行脚本就可以的,需要执行以下这一长串命令:

1
sudo ./rjsupplicant.sh -d 1 -S 1 -a 1 -s internet -u 用户名 -p 密码

运行脚本后面所使用的参数的解释可以看本文最下面的表,广州大学的用户名一般是学号,密码是身份证后7位的前6位。如果最后出现认证成功的提示就表示没错了,此时要退出客户端可以直接按下q键。

登录上锐捷之后终端不能关闭,否则网络就断了,经过一次成功的登录之后,以后运行锐捷就不用再加那么多参数,直接运行脚本即可:

1
sudo ./rjsupplicant.sh

而如果每次开机都要这样运行一条命令就显得麻烦了,所以需要设置一下开机自动登录认证。

直接编辑开机自启动脚本:

1
sudo vim /etc/rc.local

在最后添加这样一行:

1
~/Downloads/Linux锐捷客户端_V1.31/rjsupplicant/rjsupplicant.sh

也就是添加锐捷客户端执行脚本的路径,不过,强烈建议将路径中的中文去掉,或者换成英文,也就是把Linux锐捷客户端_V1.31这个文件夹的名字改成英文或者去掉中文。

然后,开始享受网络吧。

问题解决

锐捷登录认证会停用系统原本的NetworkManager网络管理软件,有些人可能会需要用到这个软件,所以还需要解决一下:

编辑配置文件

1
sudo vim /etc/NetworkManager/NetworkManager.conf

manager = false改为managed = true, 然后重启NetworkManager:

1
sudo service network-manager restart

我也很费解锐捷为什么要特意停用系统的网络管理功能,反正就就是坑。

说明

锐捷运行脚本参数的含义

参数 含义
-a 认证方式 (带参数,0表示无线认证,1表示有线认证;不指定时采用上一次认证方式或者为有线认证)
-d dhcp方式 (带参数,0表示静态IP认证,1表示使用动态获取IP方式认证;不使用-d默认使用上一次配置)
-n 认证网卡 (参数为网卡名称 (参考-l结果),不指定时采用上一次使用的网卡或者第一张网卡)
-s 服务 (参数为服务名称 (参考-l结果),不指定时采用上一次使用的服务或者第一个服务)
-I 无线认证ssid (参数为ssid名称(参考-l结果),不指定时采用上一次使用的SSID或者第一个SSID,无线认证有效)
-w 扫描无线网络: 无参数,可使用-n指定无线网卡,查看无线网络列表
-u 用户名 (参数为用户名,不指定时采用上一次使用的用户名)
-p 密码 (参数为密码,若未设定密码,运行程序后可重设定,默认为空除非已经保存了密码)
-S 保存密码 (带参数,0表示不保存密码,1表示保存密码,不指定时采用上一次配置)
-q 退出程序 (不带参数,使用-q命令退出后台运行的客户端)
-l 查看模式:无参数,指定该模式时,只查看信息,不认证。
内容包括:版本号,当前认证方式,当前网卡,当前服务(可选),用户名,服务列表(可选),网卡列表。
默认查看当前认证方式下信息。




评论