在北邮 校内网会有每个帐号允许同时两个IP在线的限制,甚至会有每个帐号允许同时1个IP在线的限制。
我们可以自己通过自己搭一个代理服务器给自己用,可以达到多台机器通过自己代理服务器,去连外网(只占用一个ip),同样手机可以通过wifi连上服务器,这样手机就可以不用输入密码就可以连外网了,这样按道理来说,在宿舍联网应该也快很多,除非你的代理服务器的网速也很慢。测试环境是xubuntu14 +firefox
- 安装squid,sudo apt-get install squid
- 配置squid.conf sudo vim /etc/squid3/squid.conf
-
- 找到 http_access allow localhost,//acl的位置一定要放对,如果放在http_access deny all后面就不行
- 添加下面两行:
- acl our_network src ip1 ip2 #(其中ip1和ip2是你允许访问的ip地址或者ip段,按具体情况填写)//北邮的话可以写acl our_network src 10.0.0.0/8
- http_access allow our_network
- (可选)如果想禁止访问某些域名或者ip的话,可以这样
- acl denyip dst “/home/zhongkeli/denyip” #禁止代理服务器访问的ip 文件格式是 “192.168.1.2 192.168.3.6”
acl denydns dst “/home/zhongkeli/denydns” #禁止代理服务器访问的域名
http_access deny denyip
http_access deny denydns - 如果想禁止制定用户访问某些网页的话,如下面的例子,禁止our_network访问http://www.xxx.com的域名网址
- acl denyip dst “/home/zhongkeli/denyip” #禁止代理服务器访问的ip 文件格式是 “192.168.1.2 192.168.3.6”
- http_access deny our_network some_url
- 找到Squid normally listens to port 3128
- 修改这一行下面 http_port 3128 为http_port ip:port#其中ip为代理服务器的ip地址,port为端口,默认是3128
- 启动squid,有可能安装完时squid就已经启动了,可以重新加载配置文件或重新启动squid即可
- sudo squid3 -z #执行完后会显示Creating Swap Directories
- sudo /etc/init.d/squid3 reload #加载配置
- sudo /etc/init.d/squid3 restart #重启squid
- sudo squid3 -k parse #可以查看你配置的信息
-
- sudo squid3 -z #执行完后会显示Creating Swap Directories
- 然后在浏览器中设置一下就可以了把上面的代理服务器ip地址和端口填上就可以了,接着就可以通过代理服务器连外网了,记得勾选use this proxy server for all protocols,否则就上不了https的网站,登录页面也上不了的。到此,简单的代理服务器就完成了。
- 除了上面的设置之外还可以有很多配置的,如cache的设置,包括内存和硬盘两种策略,和很多squid的命令,有空再介绍些,和研究一下如何加上goagent这一层代理
- 目前把bupt-2(10.8.170.116)加进去后,也是无法通过此ip连我的代理服务器,ping了一下,也没ping通,难道bupt-2不是和我的代理服务器不是一个局域网?
- 如果在linux下的chrome浏览器设置(火狐也是),最好使用SwitchySharp,然后勾选Use the same proxy server for all protocols,不然有可能无法访问https的网站
- 在linux还需要使用一个定时脚本,检测一下网络是否连通,如果不连通的话,还需要重新连接网络,防止网络断开。windows下一般网络连通了,就不会断开。
- 可以安装squidclient,查看代理服务器信息,需要在squid.conf添加 acl localhost src 代理服务器IP
-
基本的使用方法
*取得squid运行状态信息: squidclient -p 3128 mgr:info
*取得squid内存使用情况: squidclient -p 3128 mgr:mem
*取得squid已经缓存的列表: squidclient -p 3128 mgr:objects. use it carefully,it may crash
*取得squid的磁盘使用情况: squidclient -p 3128 mgr:diskd
*强制更新某个url:squidclient -p 3128 -m PURGE http://www.php-oa.com/static.php
-
查看squid 占用的端口:ps aux |grep 'squid' |grep -v 'grep'|awk '{print $2}'
-
在使用proxifier(全局代理设置,如果不设置全局代理的话,一般只有浏览器能用代理,其他想用代理就比较麻烦)时,添加https代理时会出现错误:错误: 代理服务器 (Squid) 没有配置为允许 SSL 隧道至端口 80。 要解决此问题,请查找和评论 Squid 配置文件(squid.conf) 中的以下行: http_access deny CONNECT !SSL_ports此时需要修改squid.conf,在acl SSL_ports port 443后添加acl SSL_ports port 80,同时还需要在proxifier开启http服务器选项 - 参考文献:http://support.chinaccnet.com/archives/2254.html
- http://bbs.chinaunix.net/thread-3572087-1-1.html