公司网络虚拟机无法进行上网认证问题
公司网络虚拟机无法进行上网认证问题
在开发测试中,可能会在虚拟机上进行试验或部署一些服务,但是最近遇到一个问题,由于公司的网络环境下,虚拟机在访问互联网时,由于未进行上网认证,被公司网络拦截。
一、问题发现与分析
在虚拟机使用yum安装软件时,发现mirror源失效,开始以为是无法访问外网导致的,于是尝试了国内阿里云、清华大学、搜狐的源都是不行,提示一个xml文件无效。
于是我在虚拟机使用curl单独访问了报错的xml文件,发现下载后的xml文件内容被替换为了公司上网认证的网页内容,这才发现是被公司的网络拦截了,之前尝试了国内好多yum源不生效。。。。。。
二、解决方案
由于虚拟机都是没有安装图形界面的,所以如何才能通过命令行进行上网认证呢?这里再次用到了curl命令。
2.1 用curl命令模拟上网认证请求
这个要去分析上网认证的请求方式及参数,比较麻烦,作为最后的备选方案。
2.2利用firefox编辑重发的功能获取请求方法及参数
上网认证地址:http://172.16.4.254/webAuth/index.htm?www.gstatic.com/generate_204
(1)在浏览器输入上网认证地址,打开firefox浏览器控制台并选择网络,输入账号密码进行上网认证。
(2)点击浏览器的控制台的重发功能,选择“编辑重发”
这里可以看到上网认证请求的方法及参数
(3)使用curl进行上网认证
curl http://172.16.4.254/webAuth/index.htm?www.gstatic.com/generate_204 -X POST -d “username=用户名&password=这里是密码&pwd=这里是密码&secret=true”
至此,已经在虚拟机命令行完成了上网认证,可以愉快在虚拟机访问互联网了。