squid代理服务器(squid可以代理udp端口吗)
这篇文章给大家聊聊关于squid代理服务器,以及squid可以代理udp端口吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
squid可以代理udp端口吗
普通代理:需要客户机在浏览器中指定代理服务器的地址、端口
普通代理服务器的配置:
# http_port 3128(或者下面一种写法)
# http_port 192.168.50.38:3128
cache_mem 64 MB
设置PROXY SERVER可使用多少内存作为高速缓存,一般要设置为物理内存的1/3
reply_body_max_size 10 MB allow all
禁止下载超过10M的文件
maximum_object_size 4096 KB
指定多大的文件可以被保存到磁盘中
access_log/var/log/squid/access.log squid
visible_hostname proxy.benet.com
cache_dir ufs/var/spool/squid 100 16 256
设置高速缓存目录和高速缓存可以使用的硬盘空间,100表示最大可使用100MB,16表示第一层子目录最多可以有16个,256表示每个第一层子目录下最多可以有256子目录
http_access allow all
透明代理:适用于企业的网关主机(共享接入Internet)中客户机不需要指定代理服务器地址、端口等信息需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理
配置透明代理
前提:
客户机的Web访问数据要能经过防火墙,代理服务构建在网关(防火墙)主机中
配置要求:
代理服务程序能够支持透明代理,设置防火墙规则,将客户机的Web访问数据自动重定向给代理服务程序处理
ACL(Access Control List,访问控制列表)
可以从客户机的IP地址、请求访问的URL/域名/文件类型、访问时间、并发请求数等各方面进行控制。
配置文件:
http_port 3128 transparent
应用访问控制的方式
定义acl列表
acl列表名称列表类型列表内容…
针对acl列表进行限制
http_access allow或deny列表名……
acl all src 0.0.0.0/0.0.0.0
http_access deny all
常用的acl列表类型
src
dst
port
srcdomain
dstdomain
time
maxconn
url_regex
urlpath_regex
ACL列表定义示例
Acl LAN1 src 192.168.1.0/24
acl PC1 src 192.168.1.66/32
acl Blk_Domain dstdomain.qq.com.kaixin001.com
acl Work_Hours time MTWHF 08:30-17:30
acl Max20_Conn maxconn 20
acl Blk_URL url_regex-i ^rtsp:// ^mms://
acl Blk_Words urlpath_regex-i sex adult
acl RealFile urlpath_regex-i\.rmvb$\.rm$
对ACL列表进行访问控制
http_access deny LAN1 Blk_URL
http_access deny LAN1 Blk_Words
http_access deny PC1 RealFile
http_access deny PC1 Max20_Conn
http_access allow LAN1 Work_Hours
配置反向代理
192.168.7.2(公网客户端)
192.168.7.1(公网接口)(squid代理开启内核路由转发功能)192.168.6.1(内网接口)192.168.6.2(内网客户端网关指向192.168.6.1)
在内网的web服务上做基于域名的虚拟主机模拟多台WEB服务器
Squid代理服务器的配置
cache_peer Web服务器地址服务器类型 http端口 icp端口 [可选项]
cache_peer指定真正WEB服务器的位置
parent服务器类型对应到目标主机的缓存级别,上游Web主机一般使用“parent”(父服务
器)
icp端口用于连接相邻的ICP(Internet Cache Protocol)缓存服务器(通常为另一台Squid主机),如果没有,则使用0;
originserver表示该服务器作为提供Web服务的原始主机,
weight=n”指定服务器的优先权重,n为整数,数字越大优先级越高(缺省为1);
max-conn=n”指定反向代理主机到该web服务器的最大连接数。
如何在Linux上用Squid搭建代理服务器
squid是所有服务里面最简单的我觉得
以RHEL7为例,它分成了正向代理和反向代理,正向代理里又分“标准正向代理”,“ACL访问控制”以及“透明正向代理”。下面是标准正向代理
16.3正向代理
16.3.1标准正向代理
Squid服务程序软件包在正确安装并启动后默认就已经可以为用户提供标准正向代理模式服务了,而不需要单独再去修改配置文件或者其他操作,咱们可以立即在Windows7系统的客户端主机上面打开任意一款浏览器,然后点击Internet选项标签,如图16-4所示:
[root@linuxprobe~]# systemctl restart squid
[root@linuxprobe~]# systemctl enable squid
ln-s'/usr/lib/systemd/system/squid.service''/etc/systemd/system/multi-user.target.wants/squid.service'
用户要想使用Squid服务程序提供的标准正向代理模式服务就必须在浏览器中填写服务器的IP地址以及端口号信息,因此咱们还需要依次点击连接标签后点击局域网设置选项,如图16-5与图16-6所示填写服务器信息后保存退出配置向导。
用户只需要在浏览器中简单的填写配置信息就可以开始享用Squid服务程序提供的代理服务了,此时作为一个网卡为仅主机模式(Hostonly)的虚拟机,开始也奇迹般的能够上网浏览了,这一切都是托代理服务器转发的功劳哦~
如此公开而没有密码验证的代理服务终归觉得不放心,万一有其他人也来“蹭网”咱们的代理服务怎么办呢?Squid服务程序默认的会占用3128、3401与4827等端口号,咱们可以将默认占用的端口号修改成其他值,这样应该能起到一定的保护作用吧~同学们都知道在Linux系统配置服务程序就是在修改该服务的配置文件,因此直接在/etc目录中找到和squid服务程序同名目录中的配置文件,把其中http_port参数后面原有3128修改为10000,这样即是将Squid服务程序的代理服务端口修改成了新值,当然最后不要忘记再重启下服务程序哦~:
[root@linuxprobe~]# vim/etc/squid/squid.conf
………………省略部分输出信息………………
45#
46# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
47#
48
49# Example rule allowing access from your local networks.
50# Adapt localnet in the ACL section to list your(internal) IP networks
51# from where browsing should be allowed
52 http_access allow localnet
53 http_access allow localhost
54
55# And finally deny all other access to this proxy
56 http_access deny all
57
58# Squid normally listens to port 3128
59 http_port 10000
60
http_port 10000
………………省略部分输出信息………………
[root@linuxprobe~]# systemctl restart squid
[root@linuxprobe~]# systemctl enable squid
ln-s'/usr/lib/systemd/system/squid.service''/etc/systemd/system/multi-user.target.wants/squid.service'
同学们有没有突然觉得这一幕似曾相识?在前面的第十章10.5.3小节咱们学习过基于端口号来部署httpd服务程序的虚拟主机功能,当时在编辑完配置文件后重启服务程序时被直接提示报错了,虽然现在重启服务程序并没有直接报错,但其实客户并不能使用代理服务呢,SElinux安全子系统认为Squid服务程序使用3128端口号是理所应当的,默认策略规则中也是允许的,但现在却在尝试使用新的10000端口号,这是原本并不属于Squid服务程序应该使用的系统资源,因此咱们需要手动把新的端口号添加到squid服务程序在SElinux域的允许列表中即可:
[root@linuxprobe~]# semanage port-l| grep-w-i squid_port_t
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@linuxprobe~]# semanage port-a-t squid_port_t-p tcp 10000
[root@linuxprobe~]# semanage port-l| grep-w-i squid_port_t
squid_port_t tcp 10000, 3128, 3401, 4827
squid_port_t udp 3401, 4827
更多的图文信息以及其他的代理方式你可以看下http://www.linuxprobe.com/chapter-16.html#161这篇,讲的非常详细,相信能解决你的问题
Squid+Stunnel怎么搭建代理服务器
一,服务器说明
一台国外的vps(推荐linode),服务端squid
一台公司内部的PC机,能访问外网就行,客户端stunnel
要达到的目的,公司内部人员,连接公司内部pc机,通过stunnel通道连接远端squid,上外网查资料,谷歌,众里寻他千百度,蓦然回首你却在高墙外头。
二,服务端安装squid
1,安装squid
# yum install squid openssl openssl-devel
2,生成加密代理证书
# cd/etc/squid
# openssl req-new> tank.csr//要求输入密码和确认密码
# openssl rsa-in privkey.pem-out tank.key//输入上面输入的密码
# openssl x509-in tank.csr-out tank.crt-req-signkey tank.key-days 3650
3,配置squid
# vim/etc/squid/squid.conf
acl OverConnLimit maxconn 10//限制每个IP最大允许10个连接,防止攻击
minimum_object_size 1 KB//允午最小文件请求体大小
maximum_object_size 1 MB//允午最大文件请求体大小
cache_swap_low 10//最小允许使用swap 10%
cache_swap_high 25//最大允许使用swap 25%
cache_mem 300 MB//可使用内存
/*****************上面是新增,下面是修改************************/
cache_dir ufs/var/spool/squid 2048 16 256//2048存储空间大小,一级目录16个,二级256个
https_port 4430 cert=/etc/squid/tank.crt key=/etc/squid/tank.key//端口可自定义
http_access allow all
vps硬盘,内存都不富裕,所以对squid所占用的内存和硬盘等要加以控制。
4,启动squid,并查看
#/etc/init.d/squid start
# ps aux|grep squid
root 15984 0.0 0.0 103256 844 pts/0 S+ 17:31 0:00 grep squid
root 16585 0.0 0.0 72484 4176? Ss 15:27 0:00 squid-f/etc/squid/squid.conf
squid 16587 0.0 0.3 93064 29468? S 15:27 0:03(squid)-f/etc/squid/squid.conf
squid 16589 0.0 0.0 48632 2100? S 15:27 0:00(ncsa_auth)/etc/squid/passwd
squid 16590 0.0 0.0 48632 1788? S 15:27 0:00(ncsa_auth)/etc/squid/passwd
squid 16591 0.0 0.0 48632 1784? S 15:27 0:00(ncsa_auth)/etc/squid/passwd
squid 16592 0.0 0.0 48632 1788? S 15:27 0:00(ncsa_auth)/etc/squid/passwd
squid 16593 0.0 0.0 48632 1784? S 15:27 0:00(ncsa_auth)/etc/squid/passwd
squid 16594 0.0 0.0 20084 1112? S 15:27 0:00(unlinkd)
VPS很少有,自启动开启防火墙的,如果有先关掉,等都配置好了,在开放端口。
三,客户端安装配置stunnel
1,安装
# yum install stunnel
2,新增配置/etc/stunnel/stunnel.conf,添加以下内空
client= yes
fips= no
[https]
accept= 7071
connect=外网VPS的IP:4430
如
果报,FIPS_mode_set: 2D06C06E: error:2D06C06E:FIPS
routines:FIPS_module_mode_set:fingerprint does not
match,stunnel.conf配置文件中加上,fips= no
3,启动stunnel并查看
# stunnel//启动,默认配置文件路径/etc/stunnel/stunnel.conf
# ps aux|grep stunnel//查看
root 15972 0.0 0.0 103256 848 pts/0 S+ 17:30 0:00 grep stunnel
root 21099 0.0 0.0 41532 1060 pts/0 S 15:42 0:00 stunnel
root 21100 0.0 0.0 41532 1060 pts/0 S 15:42 0:00 stunnel
root 21101 0.0 0.0 41532 1060 pts/0 S 15:42 0:00 stunnel
root 21102 0.0 0.0 41532 1060 pts/0 S 15:42 0:00 stunnel
root 21103 0.0 0.0 41532 1060 pts/0 S 15:42 0:00 stunnel
root 21104 0.0 0.0 2077984 6824? Ss 15:42 0:00 stunnel
到这儿就安装好了,设置浏览器代理,填写局域网IP和端口,就可以访问外网了,这样不太安全,如果能加上用户认证会,安全一点。
四,用户认证
1,添加认证用户 test123
# htpasswd-c/etc/squid/passwd test123
2,配置代理以及用户认证
# vim/etc/squid/squid.conf//添加以下内容
auth_param basic program/usr/lib64/squid/ncsa_auth/etc/squid/passwd//认证方式为basic,认证程序路径和密码文件路径
auth_param basic children 5//认证程序的进程数
auth_param basic credentialsttl 1 hours//认证有效时间
auth_param basic realm my test prosy//浏览器显示输入用户/密码对话框时,显示的内容
acl test123 proxy_auth REQUIRED
http_access allow test123//普通用户需要通过认证才能访问
http_access deny all//最下面,匹配是从上到下的
3,重启squid
#/etc/init.d/squid restart
这样squid代理就搭好了,浏览器里面设置一下代理IP和端口,会弹出认证框,输入用户名和密码就行了。
4,php也可以利用代理服务器
function testCurl($url){
$ch= curl_init();
curl_setopt($ch, CURLOPT_URL,$gurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY,"192.168.1.18:7071");//ip/端口
curl_setopt($ch, CURLOPT_PROXYUSERPWD,'test123:123456');//认证用户和密码
$result=curl_exec($ch);
curl_close($ch);
return$result;
}
echo testCurl(“google.com”);
这些都是小鸟云的工程师告诉我的,建议你可以试试小鸟云
squid代理服务器和squid可以代理udp端口吗的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!