精华内容
下载资源
问答
  • 什么是代理服务器?其原理和常见代理服务器
    千次阅读
    2017-06-19 12:45:26

    代理服务器的概念

    代理服务器(Proxy Server)是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。代理服务器作为连接Internet(广域网)与Intranet(局域网)的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性,缓存,内容过滤,访问控制管理等功能。代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们控制和节省上网费用。
      代理服务器能够让多台没有IP地址的电脑使用其代理功能高速、安全地访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求,该请求先被代理服务器识别并由代理服务器代为向外请求资源。由于一般代理服务器拥有较大的带宽,较高的性能,并且能够智能地缓存已浏览或未浏览的网站内容,因此,在一定情况下,客户端通过代理服务器能更快速地访问网络资源。代理服务器应用的常见例子:拥有上百台电脑的局域网通过一台能够访问外部网络资源的代理服务器而也能访问外部互联网。

    代理服务器的功能

      (1) 充当局域网与外部网络的连接出口
      充当局域网与外部网络的连接出口,同时将内部网络结构的状态对外屏蔽起来,使外部不能直接访问内部网络。从这一点上说,代理服务器就充当的网关。
      (2)作为防火墙
      代理服务器.可以保护局域网的安全,起防火墙的作用。通过设置防火墙,为公司内部的网络提供安全边界,防止外界的侵入。
      (3)网址过滤和访问权限限制
      代理服务器可以设置IP地址过滤,对外界或内部的Internet地址进行过滤,限制不同用户的访问权限。例如代理服务器可以用来限制封锁IP地址,禁止用户对某些网页进行浏览。
      (4)提高访问速度
      代理服务器将远程服务器提供的数据保存在自己的硬盘上,如果有许多用户同时使用这一个代理服务器,他们对Internet站点所有的访问都会经由这台代理服务器来实现。当有人访问过某一站点后,所访问站点的内容便会被保存在代理服务器的硬盘上,如果下一次有人再要访问这个站点时,这些内容便会直接从代理服务器磁盘中取得,而不必再次连接到远程服务器上去取。因此,它可以节约带宽、提高访问速度。
      

    代理服务器的工作原理

      
      代理服务器(Proxy Server)的工作原理是:当客户在浏览器中设置好Proxy Server后,你使用浏览器访问所有WWW站点的请求都不会直接发给目的主机,而是先发给代理服务器,代理服务器接受了客户的请求以后,由代理服务器向目的主机发出请求,并接受目的主机的数据,存于代理服务器的硬盘中,然后再由代理服务器将客户要求的数据发给客户。下面我们来详细说明其工作过程:
      在网络上,当客户端向服务器端请求数据时,服务器端会随即将所需的数据传给客户端。但是这个服务器可能在很远的地方(例如在美国),数据传输需要较长的时间,如果需要同样数据的用户很多,则每次都要重复传送.
    1、代理服务器的角色
      代理服务器是为了减少长距离的传送而诞生的。它不仅可以代理客户端向服务器端提出请求,也可以代理服务器传给客户端所需要的数据。
    当客户端对服务器端提出请求时,此请求会被送到代理服务器,然后代理服务器会检查本身是否有客户端所需要的数据。如果有,代理服务器便代替服务器将数据传给客户端。而代理服务器一般都是设置距自己传输距离较近的某台代理服务器,所以它传数据给客户端的速度会比从远程服务器传数据要快。
      如果代理服务器没有客户端所请求的数据,它会去服务器获取所需的数据。在代理服务器从服务器端取得数据传给客户端时,自己保存一份,待下次如果有用户提出相同的请求时,便可以将数据直接传过去,而不需要再去服务器端获取了。可见,代理服务器改善网络数据传输阻塞的功能是显而易见的。

    代理服务器主要类型

      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代理。

    更多相关内容
  • 万字长文带你了解最常用的开源 Squid 代理服务器

    千次阅读 多人点赞 2020-03-01 21:04:00
    Squid:是一个高性能的代理缓存服务器,Squid 支持 FTP、gopher、HTTPS 和 HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求,作为应用层的代理服务软件,...

    作者:JackTian
    微信公众号:杰哥的IT之旅(ID:Jake_Internet)

    一、Squid 是什么?

    Squid:是一个高性能的代理缓存服务器,Squid 支持 FTP、gopher、HTTPS 和 HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求,作为应用层的代理服务软件,Squid 主要提供缓存加速、应用层过滤控制的功能。

    二、为什么要用 Squid?

    Squid是最初的内容分发和缓存工作之后产生的项目之一。它已经成长为包括额外的功能,例如强大的访问控制,授权,日志记录,内容分发/复制,流量管理和整形等等。具有许多新旧的解决方法,可以处理不完整和不正确的HTTP实现。

    主要分为如下三点:

    1)对于ISP:节省带宽,改善用户体验

    Squid 允许 Internet 提供商通过内容缓存节省带宽,缓存的内容意味着数据是在本地提供的,用户可通过经常使用的内容以更快的下载速度看到。调整良好的代理服务器,即使没有缓存,也可以通过优化 TCP 流来提高用户速度。易于调整服务器,以处理互联网上各种延迟,而台式机环境根本不适合这种延迟。

    Squid 使 ISP 无需为升级核心设备和传输链路而花费大量资金,以应对不断增长的内容需求,还允许 ISP 根据技术或经济原因决定优先级和控制某些 Web 内容类型。

    2)对于网站:在不花费大量硬件和开发时间的情况下扩展应用程序

    很多网站使用 Squid 来减轻服务器负载,常见内容由 Squid 缓存并提供给客户端,而通常只需要应用程序服务器负载的一小部分。在现有网站前设置加速器几乎总是一项快速而简单的任务,并具有直接的好处。

    3)对于内容交付提供商:在全球范围内分发您的内容

    Squid 使内容分发者和开发者可轻松的在全球范围内分发内容,CDN 提供商可以购买运行 Squid 的廉价 PC 硬件,然后将其部署在 Internet 上的战略位置,以廉价,高效地提供大量数据。

    三、Squid 代理的工作机制

    当客户机通过代理来请求 Web 页面时,指定的代理服务器会先检查自己的缓存,如缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机;

    如果缓存中没有客户机要访问的页面,则由代理服务器向 Internet 发送访问请求,当获得返回的 Web 页面后,将网页数据保存到缓存中并发送给客户机。

    在这里插入图片描述
    简要的描述流程图如下:
    在这里插入图片描述
    在这里插入图片描述
    在 HTTP 代理的缓存加速对象主要是文字、图像等静态 Web 元素。使用缓存机制后,当客户机在不同的时候访问同一个网页时,或者不同的客户机访问相同的网页时,可直接从代理服务器的缓存中取得结果,同时也大大减少了向 Internet 提交重复性的网页请求的过程,提高客户机的网页访问的响应速度。

    客户机的网页访问请求是由代理服务器来代替完成的,可隐藏用户的真实 IP 地址,并起到一定的保护作用。同时,也会针对要访问的目标、客户机的地址、访问时间段等等进行过滤控制

    四、Squid 代理的基本类型

    • 传统代理:也可以理解为:普通代理服务,需在客户端的浏览器等程序中手动设置代理服务器的地址端口,才可以使用代理来进行访问网络,对于浏览器访问网站时的域名解析请求会发给指定的代理服务器。

    • 透明代理提供与传统代理相同的功能和服务,区别在于客户机不需要指定代理服务器的地址端口,而是通过默认路由防火墙策略将网页访问重定向,实际上来说,还是交给代理服务器来进行处理。

    五、Squid 的源码包

    在 Linux 操作系统下,Squid rpm 包在Packages中。这也是快速启动并运行Squid最简单的方法,也是支持的Squid 版本保持最新的好方法。特殊情况下,也可以下载Squid的二进制软件包,可用于多种平台,包括 Windows 等;

    地址:https://wiki.squid-cache.org/SquidFaq/BinaryPackages

    源码包,下载后可在编译时自定义Squid安装。最新的发行版:squid-4.10

    squid-4.10下载地址:http://www.squid-cache.org/Versions/v4/

    也可以参阅编译Squid以获得编译源代码的帮助。

    地址:https://wiki.squid-cache.org/SquidFaq/CompilingSquid

    更多软件包版本,可通过官网进行查看。

    地址:http://www.squid-cache.org/Versions/

    六、搭建 Squid 代理服务器

    首先,先把环境及设备搭建好,配置好 IP 地址。

    1)一台 客户端(Windows Server / Windows)
    2)一台 Web 网站服务器(需启动 HTTPD 服务)
    3)一台 Squid 代理服务器(需配置两块网卡:一块为内网 IP 地址,一块为公网 IP 地址)

    客户端配置

    首先,将客户端的 IP 地址配置为:192.168.3.1(内网 IP 地址),网卡选择:VMnet8,配置好后并检查 IP 是否配置正确,且正确关闭防火墙。
    在这里插入图片描述
    在这里插入图片描述

    网站服务器配置
    # ip a                                                               // 查看 IP 地址
    
    # service iptables stop                                              // 关闭防火墙 和 SElinux
    # setenforce 0
    
    # rpm -q httpd                                                       // 查看系统中是否有 HTTPD rpm 包
    httpd-2.2.15-29.el6.centos.x86_64
    
    # service httpd start                                                // 启动 HTTPD 服务
    
    # echo "Welcome jack to this website." > /var/www/html/index.html    //将 Welcome jack to this website.写入网站目录下的 html 文件下
    
    # curl http://202.100.0.100                                          // 测试访问本机 IP 地址是否能够正常输出
    Welcome jack to this website.
    
    Squid 代理服务器端配置

    解压 Squid 源码包,配置 Squid 的编译选项,并将安装目录设为/usr/local/squid,其他具体选项可根据实际需求来配置,或可以参考./configure --help的说明。

    # tar xf squid-3.4.6.tar.gz
    # ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-netfilter --enable-linxu-tproxy --enable-async-io=100 --enable-poll --enable-err-language="Simplify_Chinese" --enable-undersxcore --enable-poll --enable-gnuregex
    # make && make install
    

    上述编译选项的含义:

    • --prefix=/usr/local/squid:安装目录
    • --sysconfdir=/etc:单独给配置文件修改到其他目录
    • --enable-arp-acl:可在规则中设置直接通过客户端 MAC 进行管理,防止客户端使用 IP 欺骗
    • --enable-linux-netfilter:使用内核过滤
    • --enable-linxu-tproxy:支持透明模式
    • --enable-async-io=100:异步 I/O,提升存储性能
    • --enable-poll:使用 poll() 模式,提升性能
    • --enable-err-language="Simplify_Chinese":错误信息的显示语言
    • --enable-undersxcore:允许 URL 中有下划线
    • --enable-gnuregex:使用 GNU 正则表达式

    创建链接文件、用户、组。

    # ln -s /usr/local/squid/sbin/* /usr/local/sbin/
    # useradd -M -s /sbin/nologin squid
    # chown -R squid:squid /usr/local/squid/var
    

    修改 Squid 配置文件

    Squid 服务的配置文件位于:/etc/squid.conf,了解配置行有助于管理员根据实际情况灵活配置代理服务。

    # vim /etc/squid.conf
    59 http_port 3128                                // 用于指定代理服务监听的地址和端口,默认端口号为:3128
    60 cache_effective_user squid                    // 指定 Squid 的程序用户,用于设置初始化、运行时缓存的账号,否则启动不成功。
    61 cache_effective_group squid                   // 默认为 cache_effective_user 指定账号的基本组
    76 visible_hostname squid.packet-pushers.net     // 在配置文件文末最后一行添加 visible_hostname 配置,否则无法启动 Squid 服务。
    

    Squid 的运行控制,检查配置文件语法是否正确;

    # squid -k parse
    

    启动、停止 Squid

    第一次启动 Squid 服务时,会自动初始化缓存目录。在没有可用的 Squid 服务脚本的情况下,可调用 Squid 程序来启动服务,需先初始化。

    # squid -z                                        // -z 选项用来初始化缓存目录
    # squid                                           // 启动 Squid 服务
    

    查看 Squid 服务监听状态是否已经监听到 3128 端口号;

    # netstat -anpt | grep "squid"
    tcp        0      0 :::3128                     :::*                        LISTEN      19068/(squid-1)
    

    除了上述,使用源码包的方式进行安装以外,还可以通过编写Squid 服务脚本来进行操作,并使用chkconfigservice工具来进行管理,这样我们就可以通过Squid 服务脚本启动停止重启 Squid 服务了,在执行时,添加相应的参数即可。

    #!/bin/bash
    # chkconfig:  2345 90 25
    # config: /etc/squid.conf
    # pidfile: /usr/local/squid/var/run/squid.pid
    # Description: Squid 脚本
    
    PID="/usr/local/squid/var/run/squid.pid"
    CONF="/etc/squid.conf"
    CMD="/usr/local/squid/sbin/squid"
    
    case "$1" in
    	start)
    		netstat -anpt | grep squid &> /dev/null
    		if [ $? -eq 0 ]
    	    then
          	  echo "Squid is running"
               else 
              echo "正在启动 Squid..."
              $CMD
            fi 
        ;;
        stop)
     	     $CMD	-k kill &> /dev/null
             rm -rf $PID &> /dev/null
        ;;
        restart)
            $0 stop &> /dev/null
             echo "正在关闭 Squid..."
       			  $0 start &> /dev/null
             echo "正在启动 Squid..."
        ;;
        reload)
            $CMD -k reconfigure
        ;;
        check)
            $CMD -k parse
        ;;
        status)
            [ -f $PID ] &> /dev/null
               if [ $? -eq 0 ]
                 then
            netstat -anpt | grep squid
               else
                 echo "Squid 没有运行"
               fi
        ;; 
        *)
            echo "用法 $0 {start|stop|restart|check|status}"
        ;;
        esac
    # chmod +x /etc/init.d/squid                              // 授权该脚本文件
    # chkconfig --add squid                                   // 添加为系统服务
    # chkconfig squid on
    

    七、搭建代理服务器

    传统代理:主要在于客户机的相关程序,必须指定代理服务器的地址、端口等信息。

    需求描述:

    1)在Squid 代理服务器上为客户机访问各种网站提供代理服务,但禁止通过代理下载超过 10MB 大小的文件;

    2)客户端上需指定 Squid 代理服务器来作为 Web 访问代理,并隐藏客户端的真实 IP 地址。

    Squid 作为代理服务器,必须搭建好 Squid 服务,并允许客户机使用代理;当客户机通过代理以 IP地址的形式来访问。客户端需要为浏览器等程序指定所使用的代理服务器地址、端口号等,Web 服务器需启用 HTTPD 服务。

    Squid 代理服务器的配置

    配置 Squid 实现传统代理服务时,需添加http_access allow all访问策略,便允许任意客户机使用代理服务,限制下载文件大小,需配置reply_body_max_size选项。

    修改 Squid.conf 配置文件

    # vim /etc/squid.conf
    59 http_port 3128                                  
    60 reply_body_max_size 10 MB                       // 允许下载的最大文件大小
    61 http_access allow all                           // 放在 http_access allow all 之前
    

    防火墙需添加允许策略并进行保存

    # iptables -I -INPUT -p tcp --dport 3128 -j ACCEPT
    # service iptables save
    

    重启 Squid 服务

    # service squid reload
    

    客户机的代理配置

    在浏览器中,选择工具Internet选项,弹出的Internet选项对话框,在连接选项卡中的局域网(LAN)设置选项中点击局域网设置按钮,进行配置代理服务器的IP 地址端口

    在这里插入图片描述
    代理服务的验证方法

    在客户机中192.168.3.100中通过浏览器访问目标网站http://202.100.0.100/,并通过Squid 代理服务器Web 网站服务器的访问日志,来验证代理服务是否发挥作用。

    查看Squid访问日志的记录

    Squid代理服务器上,通过跟踪Squid服务的访问日志文件,可以看到客户机 192.168.3.1访问网站服务器的 202.100.0.100记录。

    # tail /usr/local/squid/var/logs/access.log
    1582563190.161  9372 192.168.3.1 TCP_MISS/200 366 GET http://202.100.0.100/ - HIER_DIRECT/202.100.0.100 text/html
    1582634544.842  2584 192.168.3.1 TCP_CLIENT_REFRESH_MISS/304 218 GET http://202.100.0.100/ - HIER_DIRECT/202.100.0.100 - 
    1582634545.836   340 192.168.3.1 TCP_MISS/404 537 GET http://202.100.0.100/favicon.ico - HIER_DIRECT/202.100.0.100 text/html
    1582635089.249   344 192.168.3.1 TCP_CLIENT_REFRESH_MISS/304 218 GET http://202.100.0.100/ - HIER_DIRECT/202.100.0.100 - 
    

    查看Web访问日志的记录

    Web网站服务器上,通过跟踪HTTPD 服务的访问日志文件,可以发现代理服务器的 IP 地址:202.100.0.1的访问记录,这里其实并没有看到从Squid访问日志的客户机 IP 地址:192.168.3.1的记录,实际上来说,是由代理服务器替它在访问Web网站服务器。

    当客户端再次访问该Web网站时,Squid 访问日志中会增加新纪录,Web 访问日志 中的记录不会变化,实际上是由代理服务器通过缓存进行提供。除非是Web网站页面有调整或强制刷新等操作

    # tail /var/log/httpd/access_log 
    202.100.0.100 - - [23/Feb/2020:21:19:37 +0800] "GET / HTTP/1.1" 200 30 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
    202.100.0.100 - - [24/Feb/2020:00:35:09 +0800] "GET / HTTP/1.1" 200 30 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
    202.100.0.1 - - [25/Feb/2020:00:53:09 +0800] "GET / HTTP/1.1" 200 30 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
    202.100.0.100 - - [25/Feb/2020:01:21:09 +0800] "GET / HTTP/1.1" 200 30 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
    202.100.0.1 - - [25/Feb/2020:20:42:22 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
    202.100.0.1 - - [25/Feb/2020:20:42:25 +0800] "GET /favicon.ico HTTP/1.1" 404 288 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
    202.100.0.1 - - [25/Feb/2020:20:51:29 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
    
    透明代理:依赖于默认路由和防火墙的重定向策略,适用于局域网主机服务。

    需求描述:

    1)Squid 为客户机访问 Internet 提供代理服务;

    2)局域网的设备,需正确设置 IP 地址、默认网关、不需手动指定代理服务器的地址、端口等;

    配置 Squid 支持透明代理

    Squid 服务的默认配置是并不支持透明代理的,需调整相关设置。2.6 以上版本,只需在http_port配置行加上transparent透明选项即可支持透明代理了。

    # vi /etc/squid.conf
    http_port 192.168.3.100:3128 transparent                     // 在其中一个 IP 地址上提供服务
    # service squid reload                                       // 重启 squid 服务
    

    设置防火墙的重定向策略

    透明代理中 Squid 服务是在Linux 网关主机上构建的,需正确配置防火墙策略,就可以将局域网主机访问 Internet 的数据包交给 Squid 进行处理,需用到IPTABLESREDIRECT重定向策略,其主要实现本机端口的重定向将访问的网站协议HTTP(80)、HTTPS(443)的外发数据包交给Squid 代理服务器(3128端口)

    REDIRECT重定向策略也是一种数据包控制类型,在nat表的PREROUTINGOUTPUT链以及被其调用的链中使用,通过--to-ports 端口号的形式指定映射的目标端口。

    # iptables -t nat -A PREROUTING -i eth0 -s 192.168.3.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
    # iptables -t nat -A PREROUTING -i eth0 -s 192.168.3.0/24 -p tcp --dport 443 -j REDIRECT --to-ports 3128
    # service iptables save
    

    验证透明代理的使用

    验证透明代理的效果,如存在手动指定的代理服务器设置应在客户机中去除。如果是在Windows操作系统上,需通过浏览器的连接设置中不要勾选使用代理服务器,如果是在Linux操作系统上,需通过Unset命令清除HTTP_PROXYHTTPS_PROXY等变量

    # unset HTTP_PROXY HTTPS_PROXY
    

    然后在客户机通过浏览器访问目标网站,观察Squid代理服务器、Web服务器的访问日志,进行验证透明代理是否有发挥作用。

    八、 ACL 访问控制

    Squid通过访问控制,可以保证自己所管理的资源不被非法使用和非法访问,同时也会根据特定的时间间隔访问,缓存指定的网站进行限制,针对源地址目标地址访问的 URL 路径访问的时间等各种条件进行过滤。

    Squid用于访问控制的配置选项主要有两个:第一ACL(Squid 访问控制的基础,用于命名一些网络资源或网络对象,使用ACL配置项定义需要控制的条件);第二http_access(它对ACL命名的对象进行权限控制,允许拒绝访问的控制);

    定义访问控制列表

    每一行ACL配置可以定义一条访问控制列表,语法格式:

    acl 列表名称 列表类型 列表内容 ···
    

    列表名称(name):是对象的名称,可自行指定,用来识别控制条件;

    列表类型(type):是网络对象的类型,可以是IP 地址域名用户名网络端口号协议请求方法以及正则表达式等,必须使用Squid预定义的值,对应不同类别的控制条件;

    列表内容(value):是指某种类型的网络对象的值,不同类型的列表所对应的内容也不一样,可以有多个值(以空格分隔,为的关系);

    常见的访问控制列表类型
    类型含义
    src源 IP 地址,可以是单个IP,也可以是地址范围或子网地址
    dst目的 IP 地址,可以是单个IP,也可以是地址范围或子网地址
    myip本机网络接口的 IP 地址
    srcdomain客户所属的域,Squid 将根据客户 IP 地址进行方向 DNS 查询
    dstdomain服务器所属的域,与客户请求的 URL 匹配
    time表示一个时间段
    port指向其他计算机的网络端口
    myport指向 squid 服务器自己的网络端口
    proto客户端请求所使用的协议
    methodHTTP 请求方法
    proxy_auth由 squid 自己认证的用户名
    url_regex有关 URL 的正则表达式

    定义和使用 acl 对象时,需注意:
    1、某种 acl 类型的值可以是同种类型的 acl 对象;
    2、不同类型的对象其名称不能重复;
    3、acl 对象的值可以为多个,但在使用过程中,当任意一个值被匹配时,则整个 acl 对象被认为是匹配的;
    4、同种类型的复习其名称重复使用时,Squid 会把所有的值组合到这个名称的对象中;
    5、对象的值如果是文件名,则该文件所包含的内容做为对象的值,文件名需加双引号

    定义访问控制列表时,需结合当前网络环境正确分析用户的访问需求并准确定义使用代理服务的控制条件。不同的客户端地址,需要限制访问的目标网站,特定时间段等等分别进行定义列表。

    # vi /etc/squid.conf
    acl localhost src 192.168.1.0/255.255.255.0          // 源地址 192.168.1.0
    acl MYLAN src 192.168.1.0/24 192.168.3.0/24          // 客户端网段
    acl to_localhost dst 127.0.0.0/8                     // 目标地址 127.0.0.0/8 网段
    acl MC20 maxconn 20                                  // 最大并发连接 20 
    acl WORKTIME time MTWHF 9:00-18:00                   // 时间:周一至周五 9:00-18:00
    

    除上述配置的参数以外,还可以根据上表中的常见的访问控制列表类型根据实际需求进行配置。

    限制同一类对象较多时,可使用独立的文件夹进行存放,在 acl 配置航的列表内容处指定对应的文件位置,也可针对目标地址建立黑名单文件。

    # mkdir /etc/squid
    # cd /etc/squid
    # vi heimingdanip.list                                       // 黑名单目标 IP 地址名单
    # vi mubiaoyuip.list                                         // 域目标 IP 地址名单
    # vi /etc/squid.conf
    acl HEIMINGDANIP dst "/etc/squid/heimingdanip.list"          // 调用指定文件中的列表内容
    acl MUBIAOYUIP dstdomain “/etc/squid/mubiaoyumingip.list”
    
    设置访问权限

    定义ACL对象的目的:为了对与对象匹配的请求进行访问控制,并不是由ACL选项实现的,而是由http_accessicp_access选项实现的。http_access配置行必须放在对应的ACL配置行之后,每一行http_access配置确认一条访问控制规则。

    http_access格式:

    http_access < allow | deny > [!]ACL对象 1 [!]ACL对象 2 ···
    

    allow:允许 deny:拒绝

    ACL 对象:是指由 acl 选项定义的网络对象,可以有多个!符号表示非运算,即与ACL对象相反的那些对象。

    http_access规则中,可同时包含多个访问控制列表名,各列表名间以空格进行分隔。

    的关系,必须满足所有访问控制列表对应的条件才会进行限制。

    取反条件时,可在访问控制列表中前加!符号。

    # vi /etc/squid.conf
    http_access deny MYLAN MEDIAFILE           // 禁止客户端下载 MP3、MP4 等文件
    http_access deny MYLAN HEIMINGDANIP        // 禁止客户端访问黑名单中的 IP 地址
    http_access deny MYLAN MUBIAOYUIP          // 禁止客户端访问黑名单中的 域
    http_access deny MYLAN MC20                // 客户端的并发连接超过 20 时被中断
    http_access allow MYLAN WORKTIME           // 允许客户端在工作时间内进行上网
    http_access deny all                       // 默认禁止所有客户端使用代理
    

    Squid处理http_access选项时,要把客户端的请求与http_access选项中的ACL对象匹配,当请求与每一个ACL对象都能匹配时,则执行allow或者deny,只要请求与多个ACL对象中的一个不匹配,则http_access无效,不会执行任何指定的操作。

    多个http_access选项,则一个请求与其中一个http_access选项匹配时,将执行http_access指定的操作,如果与所有的http_access选项都不匹配时,则执行与最后一条http_access指定相反的操作。

    通常情况下,最常用的控制规则放在最前面,减少Squid的负载。

    在访问控制策略上,采用先拒绝后允许先允许后拒绝的方式,最后一条规则可设为默认策略,表示为http_access allow allhttp_access deny all

    在本次Squid环境下,通过如下四条访问控制配置选项进行配置,配置完毕后,重启Squid服务,进行验证。

    # vi /etc/squid
    acl sorce src 192.168.3.1           // 定义好内网客户机的地址
    acl mubiao dst 202.100.0.0/24       // 定好内网要访问的目标地址
    http_access deny sorce mubiao       // 拒绝内网地址放问外网地址(用 http_access 引用列表)
    http_access allow all		        // 定义默认规则为允许所有
    # service squid reload
    

    验证结果无非就两种情况,一种是能够正常访问,另一种是禁止访问,客户端的代理访问请求被Squid服务拒绝时,将弹出ERROR报错页面,其具体报错内容也是根据你所限制的条件内容有关。
    在这里插入图片描述

    来和上万名读者一起见证彼此成长!

    扫描下方二维码,添加杰哥微信,备注:地区/城市-职业方向/学校-昵称,即可加入杰哥的IT之旅读者群,群内仅供学习交流、日常互动、资源分享、经验分享等,一定要记得备注,我会尽快通过好友验证的。
    在这里插入图片描述

    👆长按识别,添加微信

    (添加人数较多,请耐心等待)


    推荐阅读

    1、GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
    2、GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
    3、没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中文趋势榜第一!
    4、RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
    5、Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
    6、为什么要学习 Markdown?究竟有什么用?

    今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言点赞是我持续更新的动力哦,感谢大家!

    1、点个赞,让更多的人看到这篇文章,顺便激励下我,嘻嘻。

    2、关注我的原创微信公众号「杰哥的IT之旅」专注于IT技术干货文章,以及不定期的分享学习资料,实用工具,面试经验等,当然了还有内推机会哦,期待你的关注!

    欢迎关注我的微信公众号

    展开全文
  • 代理服务器

    千次阅读 2019-06-17 10:25:23
    Web 代理服务器是网络的中间实体。代理位于客户端和服务器之间,在各端点之间来回传送HTTP 报文。 HTTP 的代理服务器即是Web 服务器又是Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像Web 服务器...
    • Web 代理服务器是网络的中间实体。代理位于客户端和服务器之间,在各端点之间来回传送HTTP 报文。
    • HTTP 的代理服务器即是Web 服务器又是Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像Web 服务器一样,正确的处理请求与连接,然后返回响应。同时,代理自身向服务器发送请求,这样,其行为就必须像正确的HTTP 客户端一样,要发送请求并接收响应。如果要创建自己的HTTP代理,就要认真地遵循为HTTP 客户端和HTTP 服务器制定的规则。
    • 公共代理:大多数代理都是公共的共享代理。集中式代理更容易管理。某些代理应用,比如高速缓存代理服务器,会利用用户间共同的请求,这样的话,汇入同一个代理服务器的用户越多,它就越有用。
    • 私有代理:专用的私有代理并不常见,但他们确实存在,尤其是直接运行在客户端计算机上的时候,有些浏览器辅助产品,以及一些ISP服务,会在用户的PC 上直接运行一些小型的代理。
    代理与网关的对比
    • 严格来说,代理连接的是两个或多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协议的端点。
    • 网关扮演的是 “ 协议转换器 ” 的角色,即使客户端和服务器使用的是不同的协议,客户端也可以通过它完成与服务器之间的事务处理。

    为什么使用代理

    • 代理服务器可以实现各种有用的功能。他们可以改善安全性,提高性能,节省费用。代理服务器可以看到并接触到所有流过的HTTP 流量,所以代理可以监视流量并对其修改,以实现很多有用的增值Web 服务。
    • 儿童过滤器:可以利用过滤代理来阻止学生访问成人内容。代理应该允许学生无限制地访问教育性内容,但对不适合儿童的站点要强行禁止访问。
    • 文档访问控制:可以用代理服务器在大量Web 服务器和Web 资源之间实现统一的访问控制策略,创建审核跟踪机制。比如:允许客户端1无限制的访问服务器A的页面,但要求客户端2访问的时候输入口令。为了防止一些经验丰富的用户蓄意绕过控制代理,可以静态地配置Web 服务器,使其仅接受来自代理服务器的请求。
    • 反向代理:代理可以假扮Web 服务器。这些被称为替代物或者反向代理的代理接收发给Web 服务器的真实请求,但与Web 服务器不同的是,他们可以发起与其他服务器的通行,以便按需定位所请求的内容。可以用这些反向代理来提高访问慢速Web 服务器上公共内容时的性能。在这种配置中,通常将这些反向代理称为服务器加速器。还可以将替代物与内容路由功能配合使用,以创建按需复制内容的分布式网络。
    • 内容路由器:代理服务器可以作为 “ 内容路由器 ” 使用,根据因特网流量状况以及内容类型将请求导向特定的Web 服务器。内容服务器可以用来实现各种服务级的请求。比如:如果用户或内容提供者付费要求提供更高的性能,内容路由器可以将请求转发到附近的复制缓存,或者如果用户申请了过滤服务,还可以通过过滤代理来转发HTTP请求。可以用自适应内容路由代理来构建很多有趣的服务。
    • 转码器:代理服务器在将内容发送给客户端之前,可以修改内容的主体格式。在这些数据表示法之间进行的透明转换被称为转码。转码代理可以在传输GIF 图片时,将其转换成JPEG 图片,以减少尺寸。也可以对图片进行压缩,或降低颜色的色彩饱和度以便在电视上观看。
    • 匿名者代理:会主动从HTTP 报文中删除身份特性(比如客户端IP地址、From 首部、Referer首部、cookie、URI 的会话ID),从而提高高度的私密性和匿名性。
      • 匿名代理会对用户报文进行下列修改以增加私密性
      • 从User-Agent 首部删除用户的计算机与OS 类型
      • 删除From 首部以保护用户的E-mail 地址
      • 删除Referer 首部来掩盖用户访问过的其他站点
      • 删除Cookie 首部以剔除概要信息和身份的数据

    代理服务器的部署

    • 出口代理:将代理固定在本地网络的出口点,以便控制本地网络与大型因特网之间的流量。可以在公司网络中使用出口代理,提供针对公司外部恶意黑客的防火墙保护,或降低带宽费用,提高因特网流量的性能。
    • 访问(入口)代理:代理被放在ISP 访问点上,用以处理来自客户的聚合请求。ISP 使用缓存代理来存储常用文档的副本,以提高用户(尤其是高速连接用户)的下载速度,降低因特网带宽耗费。
    • 反向代理:代理通常被部署在网络边缘,在Web 服务器之前,作为替代物使用,在哪里他们可以处理所有传送给Web 服务器的请求,并只在必要时向Web 服务器请求资源。替代物可以提高Web 服务器的安全特性,或者将快速的Web 服务器缓存放在较慢的服务器之前,以提高性能。反向代理通常会直接冒用Web 服务器的名字和IP 地址,这样所有的请求就会被发送给代理而不是服务器了。
    • 网络交换代理:可以将具有足够能力的代理放在网络之间的因特网对等交换点上,通过缓存来减轻因特网节点的拥塞,并对流量进行监视。
    代理层次结构的内容路由
    • 层次不一定非得是静态的,代理服务器可以根据众多因素,将报文转发给一个不断变化的代理服务器和原始服务器集。
    • 如果请求的对象属于一个付费试用内容分发服务的Web 服务器,代理就会将请求发送给附近的一个缓存服务器,这个服务器会返回已缓存对象,或者如果它哪儿没有的话,它会去取回内容
    • 如果请求的是特定类型的图片,访问代理会将请求转发给一个特定的压缩代理,这个代理会获取图片,然后对其进行压缩,这样通过到客户端的慢速下载时,速度会更快一些。
    代理是如何获取流量的
    • 修改客户端:很多Web 客户端,都支持手工和自动的代理配置。如果将客户端配置为使用代理服务器,客户端就会将HTTP 请求有意地直接发送给代理,而不是原始服务器。
    • 修改网络:网络基础设施可以通过若干种技术手段,在客户端不知道,或没有参与的情况下,拦截网络流量并将其导入代理。这种拦截通常依赖于监视HTTP 流量的交换设备及路由设备,在客户端毫不知情的情况下,对其进行拦截,并将流量导入一个代理。这种代理被称为拦截代理。
    • 修改DNS 的命名空间:放在DNS 服务器之前的代理服务器----替代物,会直接假扮Web 服务器的名字和IP地址,这样,所有的请求就会发送给这些替代物,而不是服务器了。要实现这一点,可以手工编辑DNS 名称列表,或者用特殊的动态DNS 服务器根据需要来确定适当的代理或服务器。有时在安装过程中,真实服务器的IP地址和名称被修改了,替代物得到的会是之前的地址和名称。
    • 修改Web 服务器:也可以将某些Web 服务器配置为向客户端发送一条HTTP 重定向命令(响应吗305),将客户端请求重定向到一个代理上去。收到重定向命令后,客户端会与代理进行通信。
    代理URI 和服务器URI 的不同
    • Web 服务器报文和Web 代理报文的语法是一样的。客户端向服务器而不是代理发送请求时,HTTP 请求报文中的URI 会有所不同。
    • 客户端向Web 服务器发送请求时,请求行只包含部分URI(没有方案、主机和端口)。但当客户端向代理发送请求时,请求行中则包含完整的URI。在原始的HTTP 设计中,客户端会直接与单个服务器进行对话。不存在虚拟主机,也没有为代理制定规则。单个的服务器都知道自己的主机名和端口,所以为了避免发送过多信息,客户端只需发送部分的URI 即可,无需发送方案和主机。
    • 代理出现之后,使用部分的URI 就有问题了。代理需要知道目标服务器的名称,这样他们才能建立自己与服务器的连接。基于代理的网关要知道URI 的方案才能连接到FTP 资源和其他方案上去。
    • 没有设置客户端使用代理时,它会发送部分URI
    • 设置客户端使用代理时,它会发送完整URI
    展开全文
  • NAT映射和代理服务器

    千次阅读 2017-06-15 17:33:32
    常见代理服务器: HTTP代理  www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)时就是用http代理。它通常绑定在代理服务器的80、...

    一、NAT

    什么是NAT

      NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
      这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

    NAT的功能

      NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
      1.宽带分享:这是 NAT 主机的最大功能。
      2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。

    NAT的实现方式

      NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
      静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
    动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
      端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
      ALG(Application Level Gateway),即应用程序级网关技术:传统的NAT技术只对IP层和传输层头部进行转换处理,但是一些应用层协议,在协议数据报文中包含了地址信息。为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换。例如:对于FTP协议的PORT/PASV命令、DNS协议的 “A” 和 “PTR” queries命令和部分ICMP消息类型等都需要相应的ALG来支持。
      如果协议数据报文中不包含地址信息,则很容易利用传统的NAT技术来完成透明的地址转换功能,通常我们使用的如下应用就可以直接利用传统的NAT技术:HTTP、TELNET、FINGER、NTP、NFS、ARCHIE、RLOGIN、RSH、RCP等。

    NAT映射图解

    这里写图片描述

    NAT工作原理

      借助于NAT,私有(保留)地址的”内部”网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
    NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据部分嵌入IP地址的应用程序就不能正常工作。
      ①如NAT映射流程1这个 client(终端) 的 gateway (网关)设定为 NAT 主机,所以当要连上 Internet 的时候,该封包就会被送到 NAT 主机,这个时候的封包 Header 之 source IP(源IP) 为 192.168.1.100 ;
      ②而透过这个 NAT 主机,它会将 client 的对外联机封包的 source IP ( 192.168.1.100 ) 伪装成 ppp0 ( 假设为拨接情况 )这个接口所具有的公共 IP ,因为是公共 IP 了,所以这个封包就可以连上 Internet 了,同时 NAT 主机并且会记忆这个联机的封包是由哪一个 ( 192.168.1.100 ) client 端传送来的;
     
    NAT映射流程1
    NAT映射流程1
    这里写图片描述
    NAT映射流程2
      ③由 Internet 传送回来的封包,当然由 NAT主机来接收了,这个时候, NAT 主机会去查询原本记录的路由信息,并将目标 IP 由 ppp0 上面的公共 IP 改回原来的 192.168.1.100 ;
      ④最后则由 NAT 主机将该封包传送给原先发送封包的 Client [2] 。

    代理服务器

    代理服务器是什么?

      代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和Local Area Network(局域网)。

    代理服务器的功能:

      (1)设置用户验证和记账功能,可按用户进行记账,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。[1]
      (2)对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。
    代理服务器流程图
    代理服务器流程图
      (3)增加缓冲器(Cache),提高访问速度,对经常访问的地址创建缓冲区,大大提高热门站点的访问效率。通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
      (4)连接内网与Internet,充当防火墙(Firewall):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。
      (5)节省IP开销:代理服务器允许使用大量的伪IP地址,节约网上资源,即用代理服务器可以减少对IP地址的需求,对于使用局域网方式接入Internet ,如果为局域网(LAN)内的每一个用户都申请一个IP地址,其费用可想而知。但使用代理服务器后,只需代理服务器上有一个合法的IP地址,LAN内其他用户可以使用10...*这样的私有IP地址,这样可以节约大量的IP,降低网络的维护成本。
      这里写图片描述

    常见的代理服务器:

    HTTP代理

      www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)时就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。

    socks代理

      相应的,采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、HTTP层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问 Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于 您一定可以通过SOCKS访问Internet。常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容:
      ① SOCKS服务器的IP地址
      ② SOCKS服务所在的端口
      ③ 这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令
      知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。
      在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和使用代理服务器上联众打游戏等等各种游戏应用软件当中。[1]

    VPN代理

      指在共用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个结点之间的连接并没有传统专网建设所需的点到点的物理链路,而是架构在公用网络服务商ISP所提供的网络平台之上的逻辑网络。用户的数据是通过ISP在公共网络(Internet)中建立的逻辑隧(Tunnel),即点到点的虚拟专线进行传输的。通过相应的加密和认证技术来保证用户内部网络数据在公网上安全传输,从而真正实现网络数据的专有性。

    反向代理

      反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量。 安装反向代理服务器有几个原因:
      加密和SSL加速
      负载平衡
      缓存静态内容
      压缩 减速上传
      安全 外网发布
    大多使用开放源代代码的squid做反向代理

    其他类型

    FTP代理:能够代理客户机上的FTP软件访问FTP服务器
    RTSP代理:代理客户机上的Realplayer访问Real流媒体服务器
    POP3代理:代理客户机上的邮件软件用POP3方式收发邮件
      详见百度百科
      http://baike.baidu.com/link?url=-Ulj6kzdaF-oyAJTSxIknMpZda4cw96zfvb3CzuL_-L6IJsBWM4nxmEbg-3EHH3tQgMVFBnOVxx2AbGs3kd7odXrNhu7ix9lEHsVs_LS0LABAmK8Jp8SLbpV5SeOrbrtxCXc7H2XDl5TfGR3gEkk7q

    展开全文
  • 轻量级 HTTP 服务器 / 反向 代理服务器 nginx 主讲人 高俊峰 华章培训网 [hztraining] 华章培训网版权所有 Nginx 的 URL 重写和反向代理功能 第二讲 华章培训网 [hztraining] 华章培训网版权所有 内容概述 ?...
  • 代理服务器基本知识

    万次阅读 多人点赞 2018-01-12 17:21:21
    代理服务器英文全称是 Proxy Server,其功能就是代理网络用户去取得网络信息。 形象的说:它是网络信息的中转站。 在一般情况下,我们使用网络浏览器直接去连接其他 Internet 站点取得网络信息 时,需送出 ...
  • 反向代理服务器

    万次阅读 2018-08-13 20:37:05
    文章转自:http://www.cnblogs.com/heluo/p/3922770.html  http://blog.csdn.net/keyeagle/article/details/6723408  https://www.cnblogs.com/smallrookie/p/5634738.html 一、什么是反向代理  反向代理...
  • NAT技术与代理服务器的区别

    千次阅读 2018-06-20 21:16:19
    是当前解决IP地址不够用的主要手段, 是路由器的一个重要功能 NAT技术能够在私有IP对外通信时, 将其转为全局IP 也就是一种将私有IP和全局IP相互转化的技术方法 很多学校, 家庭, 公司内部在每个终端设置私有IP, 而...
  • web服务器、应用服务器常见服务器概念

    千次阅读 多人点赞 2020-04-17 16:36:01
    什么是web服务器,什么是应用服务器? 浏览器的编译原理是什么? http的头文件为何要这样配置? Nginx,Apache等为何要这样操作? 不同的服务器软件有什么作用? 而网上关于http的实战讲解一般都是以操作为主,涉及...
  • CentOS 7 安装 TinyProxy 代理服务器

    万次阅读 2017-10-12 21:57:53
    米扑代理,是米扑科技旗下的一款用于网页抓取、数据采集的代理产品,作为全球代理服务的领导品牌,产品优势...5. 拥有几十台云服务器,完全自主搭建的代理服务器,分布于全球十多个国家 6. 作为全球代理的企业级领导
  • 各类MQTT代理服务器特性对比

    千次阅读 2020-08-10 13:58:39
    在前面介绍了mosquitto之后,我们来看一下常见的各类MQTT代理服务器的特性对比。 参考链接:原英文链接 本页试图记录各种MQTT服务器(代理)支持的特性。这是针对它们对MQTT的支持;其中很多服务器具有比MQTT更广泛...
  • 玩转IE之自动切换代理服务器

    千次阅读 2018-10-29 11:53:27
    今天和一个朋友聊到了chrome的自动代理功能,很多人感觉这个功能非常方便,但大家或许不知道这个功能其实是继承自IE浏览器,而且在“遥远”的Windows 98时代IE就已经具有了这个功能。这个功能在IE中被称作Proxy ...
  • 作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵...1.2 什么是代理服务器 1.3 什么是反向代理服务器 第2章 什么是Nginx 2.1 什么是Nginx 2.2为什么需要Nginx? 2.3Nginx主要功能 第1章 常见网络服务器简介 1...
  • 根据百度,代理IP即代理服务器(Proxy Server)是一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层,从而起到防火墙的作用。。。Balabala,师傅别念了,看不懂啊 花里胡哨各种专有名词小白表示...
  • NAT技术与代理服务器详解

    千次阅读 2017-06-24 19:44:24
    NAT技术原理与应用 1 概述 1.1 简介 ...公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部...代理服务器(Proxy Server)与...
  • 路由,代理服务器和NAT技术的区别

    千次阅读 2017-05-17 16:23:26
    常见的局域网接入Internet的技术有三种: 直接路由 代理服务器(proxy) 网络地址转换(NAT) 一、直接路由第一种方法比较简单直接,不过要求...二、代理服务器代理服务器(Proxy Server)是一种重要的服务器安全功能,它
  • 代理服务器的工作原理

    千次阅读 2017-04-20 09:29:11
    一、代理服务器的概念及工作原理 (一)代理服务器的概念  随着Internet技术的迅速发展,越来越多的计算机连入了Internet。很多公司也将自己公司的局域网接入了Internet。如何快速地访问Internet站点,提高网络的...
  • ubuntu 使用代理服务器 squid

    千次阅读 2018-10-17 09:32:37
    代理服务器是目前网络中常见的服务器之一,它可以提供文件 缓存、复制和地址过滤等服务,充分利用有限的出口带宽,加快 内部主机的访问速度,也可以解决多用户需要同时访问外网但公 有IP地址不足的问题。同时可以...
  • 客户端通过前向代理可以访问很多不同的资源,而反向代理是很多客户端都通过它访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器。 互联网中的请求发送给...
  • Linux搭建Socks v5正向代理服务器

    千次阅读 2018-12-12 11:28:09
    HTTP代理的方式选择很多,常见的正向代理服务器有squid,privoxy,nginx,windows端有CCProxy等。但是Socks v4/v5协议的Linux代理选择很少,百度上搜索到的都是使用一个叫ss5的服务搭建的,功能比较简陋,最后一次...
  • 代理服务器基本认识

    千次阅读 2017-07-15 17:07:43
    代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和Local Area Network(局域网)。 ...
  • 代理服务器(ProxyServer)是一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。有正向代理和反向...
  • (较常见的做法是只挂一个代理,但是安全性更高的做法是用好几台代理服务器串成“代理链”,或者入侵完成后将代理服务器的日志、缓存擦除掉。)还有一些恶意用户常常挂了代理之后随意留言,所以一些网站在用户使用...
  • 华软局域网代理蝴蝶:CCProxy + Proxifier代理服务器不仅可以为局域网内的PC提供代理服务,还可以为基于Windows网络的用户提供代理服务。而且代理服务的实现十分简单,它只需在局域网的一台服务器上运行相应的...
  • Linux 访问 Windows 代理服务器配置

    千次阅读 2017-12-08 14:00:44
    首先说明一下,本文说的配置代理服务器,是指局域网内多台机器通过其中某台能上外网的机器(即代理服务器)具备同时上外网的功能。 看到很多网络上的文章都说到做代理服务器的机器至少必须具备两块网卡,一块用于...
  • 服务器常见错误代码

    万次阅读 2017-10-21 13:39:25
    1、500 Internal Server Error 内部服务错误:顾名思义500错误一般是服务器遇到意外情况,而无法完成请求。 2、500出错的可能性:  a、编程语言语法错误,web脚本错误  b、并发高时,因为系统资源限制,而不能...
  • 常见的Web服务器

    千次阅读 2018-11-14 12:11:51
    WEB服务器也称为WWW服务器、HTTP服务器,其主要功能是提供网上信息浏览服务。Unix和Linux平台下常用的服务器有Apache、Nginx、Lighttpd、Tomcat、IBM WebSphere等,其中应用最广泛的是Apache。而Window NT/2000/2003...
  • 1.背景介绍 ...Nginx作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处...
  • 3、常见的WEB服务器 目前,最主流的WEB服务器有以下几个: IIS Apache Tomcat Nginx 3.1 IIS服务器 Internet Information Services(简称IIS),是微软公司推出的WEB服务器组件,也是Windows Server默认,特有的...
  • nginx 反向代理 常见错误处理

    万次阅读 2018-04-27 11:04:23
    由内外网分离,只有某台服务的某几个端口是外网可以访问,若需要从外网访问我内网的搭建的服务,此时我们需要借助nginx反向代理功能,nginx作为反向代理服务,通过外网指定端口透射到内网,并代理内网的服务。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 140,071
精华内容 56,028
关键字:

代理服务器常见功能

友情链接: Nouveau-document-texte.rar