如何在无预装终端浏览器的Ubuntu服务器上完成校园网认证登录
解决Ubuntu服务器校园网Web认证问题(无终端浏览器+无网络)
方法1:用curl模拟Web表单提交(最推荐)
校园网的Web认证本质是HTTP表单提交,直接用curl构造请求即可:
- 先在已认证的同网设备上,打开浏览器F12抓包,找到登录请求的POST地址、表单字段(比如
username/password,可能还有csrf_token这类验证字段) - 在服务器终端执行提交命令:
- 无验证token的情况:
curl -X POST http://校园网认证地址/login -d "username=你的学号&password=你的密码&submit=登录" - 有csrf token的情况,先获取token再提交:
# 抓取页面中的csrf token(根据实际字段名调整) CSRF_TOKEN=$(curl -s http://校园网认证地址/login | grep -o 'name="csrf_token" value="[^"]*"' | cut -d '"' -f 4) # 提交表单 curl -X POST http://校园网认证地址/login -d "username=你的学号&password=你的密码&csrf_token=$CSRF_TOKEN&submit=登录"
- 无验证token的情况:
- 提交完用
curl http://baidu.com测试是否能正常访问网络
方法2:用wget模拟表单提交
操作逻辑和curl一致,只是换工具:
- 同样先确认认证地址和表单字段
- 执行命令:
- 无验证token:
wget --post-data "username=你的学号&password=你的密码&submit=登录" http://校园网认证地址/login - 有csrf token:
# 下载认证页面到本地 wget -q -O login.html http://校园网认证地址/login # 提取token CSRF_TOKEN=$(grep -o 'name="csrf_token" value="[^"]*"' login.html | cut -d '"' -f 4) # 提交表单 wget --post-data "username=你的学号&password=你的密码&csrf_token=$CSRF_TOKEN&submit=登录" http://校园网认证地址/login # 清理临时文件 rm login.html
- 无验证token:
方法3:离线安装终端浏览器
如果能通过U盘等物理介质传输文件:
- 在一台有网的同架构Ubuntu机器上,下载终端浏览器(比如lynx、links)的deb包及依赖:
apt download lynx - 把所有下载的deb包复制到U盘,再插到服务器上
- 在服务器上安装:
dpkg -i lynx*.deb - 运行
lynx 校园网认证地址,在终端界面输入用户名密码完成认证
方法4:借助已认证设备的代理
如果有同校园网内已认证的设备:
- 在已认证设备上开启HTTP代理(比如用tinyproxy,安装后修改配置允许服务器IP访问)
- 在服务器终端配置代理:
export http_proxy=http://已认证设备IP:代理端口 export https_proxy=http://已认证设备IP:代理端口 - 之后就可以用
apt install lynx安装浏览器,或者直接用curl访问认证页面
内容的提问来源于stack exchange,提问作者Parsa Noori
相关产品推荐
相关产品推荐

