最近遇到这个问题,和很多公司一样,我们公司使用了万恶的MS的ISA Server管理上网权限,上网需要使用代理。
那么首先,问题1,如何设置apt的代理
关于这个问题,网上很容易能找到资料,这里简述一下几种方法:
1. 在终端中使用export命令设置http_proxy变量指定代理,这种方法只对当前终端有作用。
export http_proxy=http://yourproxyaddress:proxyport
2. 修改/etc/apt/apt.conf这个文件,这种方法只对apt有作用。在文件中增加:
Acquire::http::Proxy "http://yourproxyaddress:proxyport";
3. 修改主目录(即/home/yourusername/)下的.bashrc文件:
http_proxy=http://yourproxyaddress:proxyport export http_proxy
上面所说的方法,如果需要用户名和密码可以使用http://user:password@address:port这样的格式指定。
但是,问题2,对于处在ISA防火墙后面的用户,用户名种带有一个反斜杠:\,而这在上面的格式中,是不允许的。
在Ubuntu英文论坛上搜索一番以后,找到了方法,即使用http://sourceforge.net/projects/ntlmap 这个东东相当于在本地建立一个代理服务器,它是可以连接ISA的代理服务器的。
要使用这个工具,先祈祷你的电脑上装了python了(万幸的是Ubuntu应该默认就撞上了的),然后解压缩下载的包到某个位置,编辑其中的server.cfg文件,修改里面的几个值:
LISTEN_PORT:5865 这个是要在你本机建立的代理服务器的端口,默认5865. PARENT_PROXY:192.168.*.* PARENT_PROXY_PORT:80 这两个就是的ISA的代理服务器和端口。 NT_DOMAIN:domain 这是你计算机所在的域和你的用户名,密码 USER:user PASSWORD:
修改完成以后,保存。然后使用下面的命令启动本地的代理:
python main.py
最后,再按照文章开始的方法,设置apt的代理就可以了,
注意这次设置的代理应该是127.0.0.1端口是你刚才在server.cfg文件里配置的端口。
这样就避开了用户名里含有“\”的问题了.
同样,由于密码里含有“:”这种特殊字符的,也可以用此方法解决。
PS,在论坛搜索的时候,看到有人问这样的问题,楼主已经说的很明白了,是在ISA环境下,还是有人进来就按开始的方法回答,并且说 it works for me...
看来老外那里小白也不少嘛,所以说,不要盲目崇拜老外
参考:
http://ubuntuforums.org/archive/index.php/t-474978.html
http://www.tuxmachines.org/node/12889
https://help.ubuntu.com/community/AptGet/Howto