代理服务器主要类型:
HTTP代理:最简单的一种代理形式,能够代理客户机的HTTP访问,上网浏览网页使用的都是HTTP协议,通常的HTTP代理端口为80、3128或8080端口。
SOCKS代理:SOCKS代理与HTTP等其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP协议,也可以是FTP协议,或者其他任何协议,所以SOCKS代理服务器比其他类型的代理服务器速度要快得多。SOCKS代理又分为SOCKS4和 SOCKS5,二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端远程域名解析(解决DNS污染就靠这个了)等。SOCK4能做到的SOCKS5都可得到,但SOCKS5能够做到的SOCKS则不一定能做到。目前SOCKS5是最常用的一种SOCKS代理。
一、如何使用HTTP代理服务器
HTTP代理服务器的设置方法,对于IE和FireFox设置略有不同。设置前需要先找一些可用的免费代理服务器地址。
1、IE的设置是这样的,打开IE浏览器,选择菜单栏的“工具/Internet选项...”。
这时候分两种情况,对于ADSL拨号用户来说,选择一个网络连接后,点“设置”,如下图所示,选中代理服务器,填入地址和端口号。
2、对于局域网用户来说,需要点“局域网设置”,如下图所示,选中代理服务器,填入地址和端口号。
FireFox的设置和IE类似,打开FireFox浏览器,选择菜单栏的“工具/选项...”。
这时选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后填写代理服务器的地址和端口。
二、如何使用SOCKS代理服务器
这里就到重点内容了,SOCKS代理是目前功能最为全面,使用最为稳定的代理服务器,我目前上网就只用SSH搭建SOCKS代理服务器上网,访问网络没有任何限制。下面我就着重讲一下如何使用SOCKS代理服务器。
用SSH搭建SOCKS代理上网,建议使用Firefox浏览器,因为Firefox支持SOCKS代理远程域名解析,而IE只能通过类似SocksCap这样的第三方软件实现,不是很方便。
配置Firefox浏览器
1、在Firefox设置SOCKS远程域名解析,主要是为了防止DNS污染,具体设置方法是,在Firefox地址栏中,输入 about:config ,按确认,修改里面的一项数值,改成 network.proxy.socks_remote_dns=true 就可以了。
2、然后,打开FireFox浏览器,选择菜单栏的“工具/选项...”。选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后在SOCKS主机上,填写代理服务器的地址127.0.0.1,端口1080,SOCKS类型选择“SOCKS V5”,这时Firefox就配置结束。
设置SSH
配置好了Firefox,就该配置SSH了,安全外壳协议(Secure Shell Protocol / SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。常用的SSH工具有开源软件PuTTY,支持SSH远程登录的主机可以实现socks5代理服务器的功能,不过在PuTTY中没有配置文件,需要手动设置才能实现,且无法保存,而PuTTY完整版自带的pLink可以实现命令行方式调用PuTTY实现SSH的加密通道。
具体的方法是,去PuTTY官方网站下载pLink这个文件,pLink的调用参数是:plink -C -v -N -pw 密码 -D 本地端口 远程用户@IP或域名:远程希望打开的端口。
新建一个文件,写入以下内容,另存为pLink.bat批处理文件,并放在Putty的安装目录内。
@plink -N Username@sshServer -pw Password -D 127.0.0.1:1080
请将Username sshServer Password三处改为用户自己登陆SSH服务器的用户名、服务器地址和密码。这个SSH帐号可以通过多种方法获得,例如用户购买了某些国外主机空间或VPS就会有SSH帐号,或者在淘宝网也有SSH帐号出售,我自用的SSH帐号是用每年100美元购买虚拟主机时赠送的,通常SSH帐号的价格大约是每年几十元人民币左右,也有少量国外网站提供免费的SSH帐号。
执行这个批处理文件,保持其窗口开启,一旦关闭窗口代理便失效。然后打开已经配置好127.0.0.1:1080的Socks5代理的Firefox浏览器,就可以使用SOCKS代理服务器上网了。
其他设置技巧
为了方便代理服务器的快速切换,我推荐两个FireFox代理服务器扩展,一个是QuickProxy,可以实现一键切换代理功能,QuickProxy安装后在状态栏有一个按钮,点击后可以启用、关闭Firefox浏览器的默认代理设置,可以快速在代理和非代理之间切换,很方便。界面如下图所示。另一个是AutoProxy,通过一份无法访问的域名列表目录,实现自动在代理和非代理之间切换,该域名列表目录由志愿者手动维护。AutoProxy还可实现自定义您自己的代理规则;订阅规则列表;自定义代理服务器等功能。使用AutoProxy的时候需要注意,点“代理服务器-编辑代理服务器”,将ssh -D的端口由7070修改为1080,点“代理服务器-选择代理服务器”,将ssh -D设置为默认。
设置完成了之后,你就可以自由自在地在开放的互联网上傲游了。
个人推荐autoproxy,用着比较顺手。性价比也不错autoproxy是火狐的一个插件,帮人自动切换是否需要用代理来访问某些站点。
FoxyProxy 是一个高级代理服务器管理工具。
它比 SwitchProxy、ProxyButton、QuickProxy、xyzproxy、ProxyTex 等扩展提供更多的功能:
* 通过使用通配符,正则表达式和其他方便的方式为任意 URLs 定义代理服务器
* 定义多个代理服务器
* 不再为不能查看到 URL 是否通过代理服务器加载而感到疑惑:
FoxyProxy 包含一个关于全部 URLs 加载情况的日志,
其中包括使用了哪一个代理服务器,匹配哪一个模版, 时间片的使用等详细信息。
安装环境操作系统: CentOS release 5.2 (Final)
Kernel: 2.6.18-92.el5PAE
软件列表
squid-2.6.STABLE22.tar.gz
软件存放位置
/data/software
安装过程
#/usr/sbin/groupadd squid -g 610
#/usr/sbin/useradd -u 610 -g squid squid
#mkdir /srv/scache
#chmod +w /var/vcache
#chown -R squid.squid /srv/scache
#mkdir /var/log/squid
#chmod +w /var/log/squid
#chown -R squid.squid /var/log/squid
#cd /data/software/pkg
#tar zxvf ../squid-2.6.STABLE22.tar.gz
#cd squid-2.6.STABLE22
#./configure --prefix=/usr/local/squid
#make &&make install
编辑Squid配置文件
#vi /usr/local/squid/etc/squid.conf
-------------------------华丽的分割线,以下都是配置文件内容----------------------------
#定义acl项名称
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80
acl safeprotocol protocol HTTP
acl test dstdomain .test.com
acl CONNECT method CONNECT
#定义acl规则
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
http_access allow safeprotocol Safe_ports test
http_access deny all
icp_access allow all
#squid监听端口
http_port 80 accel defaultsite=59.151.32.58 vhost
always_direct allow all
#后端服务器
cache_peer 10.10.10.8 parent 80 0 no-query originserver
hierarchy_stoplist cgi-bin ?
#内存cache大小
cache_mem 2048 MB
#内存cache中最大的object大小(超过这个值则不进入内存cache)
maximum_object_size_in_memory 8 KB
#内存cache的替换规则
memory_replacement_policy lru
#硬盘cache的替换规则
cache_replacement_policy lru
#磁盘cache目录(文件类型 cache目录路径 cache目录大小 二级目录个数 每个二级目录下的三级目录个数)
cache_dir ufs /srv/scache 40000 16 256
#磁盘cache中最小的object的大小(低于这个值则不缓存)
minimum_object_size 0 KB
#磁盘cache中最大的object的大小(超过这个值则不缓存)
maximum_object_size 2048 KB
cache_swap_low 90
cache_swap_high 95
#定义日志格式
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>h" %Ss:%Sh
#记录相关日志
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
#日志rotate(24则后缀从.0到.23)
logfile_rotate 24
emulate_httpd_log on
#如果你的URL里面带有?,这两行一定要注销掉
#acl QUERY urlpath_regex cgi-bin \?
#cache deny QUERY
#配置自动更新(关于后面的三个值请参考Squid配置手册)
refresh_pattern -i \.jpg$ 60 80% 1440
refresh_pattern -i \.png$ 60 80% 1440
refresh_pattern -i \.gif$ 60 80% 1440
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
request_header_max_size 10 KB
reply_header_max_size 10 KB
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
#相关timeout设置
forward_timeout 4 minutes
connect_timeout 3 minutes
peer_connect_timeout 30 seconds
read_timeout 15 minutes
request_timeout 1 minute
persistent_request_timeout 3 minutes
half_closed_clients off
pconn_timeout 1 minute
#cache管理员邮箱
cache_mgr webmaster@test.com
cache_effective_user squid
cache_effective_group squid
#squid服务器的visible_hostname,此处指定的值显示在Squid响应的Header里面的X-Cache项中
visible_hostname squidserver
coredump_dir /var/log/squid/cache
------------------------华丽的分割线,以上都是配置文件内容-----------------------------
初始化squid缓存目录
#/usr/local/squid/sbin/squid -z
启动squid
#/usr/local/squid/sbin/squid -sD
配置完成以后,最重要最重要的一点,修改Squid服务器的hosts文件,将需要Cache的域名指向到后端的服务器IP上
相关命令
停止squid
/usr/local/squid/sbin/squid -k shutdown
启用新配置
/usr/local/squid/sbin/squid -k reconfig
通过crontab每小时截断/轮循日志
59 * * * * /usr/local/squid/sbin/squid -k rotate
查看squid运行状况
/usr/local/squid/bin/squidclient -p 80 mgr:info
/usr/local/squid/bin/squidclient -p 80 mgr:5min
查看squid内存使用情况
/usr/local/squid/bin/squidclient -p 80 mgr:mem
查看squid磁盘使用情况
/usr/local/squid/bin/squidclient -p 80 mgr:diskd
查看squid已缓存列表(小心使用,可能会导致crash)
/usr/local/squid/bin/squidclient -p 80 mgrbjects
强制更新某个url
/usr/local/squid/bin/squidclient -p 80 -m PURGE http://img.test.com/h/a.jpg
查看squid缓存到内存cache中并返回给访问用户的项
#cat /var/log/squid/access.log | grep TCP_MEM_HIT
查看squid缓存到磁盘cache中并返回给访问用户的项
#cat /usr/local/squid/var/logs/access.log | grep TCP_HIT
查看没被squid缓存住,直接从原始服务器获取并返回给访问用户的项
#cat /usr/local/squid/var/logs/access.log | grep TCP_MISS
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)