Proxy(代理)服务器

2023-11-12

代理服务器:---代理服务器必须有DNS地址。如果开启转发需要在客户端设置DNS地址
  NAT:是直接与目标服务器通信的。也就是直接访问的baidu服务器,目标地址是baidu服务器的地址,所以必须要有DNS来解析主机名。
   如果是通过代理客户端是没有设置DNS的,这是因为客户端会将数据包先发给代理服务器,然后再由代理服务器将数据包转发出去的。也就是产生了2个不同的数据包。
  当用户访问服务器的时候,会先请求代理服务器,代理服务器会查看自己的缓存是否有请求的网页,如果有直接返回给用户,如果没有,则向服务器发送请求,服务器响应给代理服务器,当代理服务器收到请求后,会将请求被分到自己的缓存中,然后再拷贝一份发给用户。如果再有用户访问这个网页,代理服务器检查到自己的缓存中有用户想要的网页,则会直接返回给用户。这样就很大的节省了服务器的带宽。
启用代理服务器的转发功能:在做完NAT后需要转发功能:
   echo  1 > /proc/sys/net/ipv4/ip_forward
# 临时修改
   vim /etc/sysctl.conf
# 修改配置文件中 :net.ipv4.ip_forward = 1
   sysctl -p
# 修改后立即生效。
开启转发后需要设置客户端的 DNS
防火墙规则:
   iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
 
  iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
#开启NAT,转发 需要注意的是:在开启转发的时候需要设置客户端--DSN
   iptables -t nat -I PREROUTING 1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT  --to-ports 8080
 #将10 网段的所有请求80端口的,重定向到 8080端口(8080是代理服务的端口),需要在代理服务的配置文件中 开启转发:http_port  8080  transparent
出现错误:
WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
visible_hostname 自己的主机名(#vim /etc/squid/squid.conf添加即可)
squid服务启动日志:
/var/log/squid/squid.out
安装软件包:
     yum  -y  install squid
主目录:
     /etc/squid/
需要最关心的配置文件;squid.conf
配置文件:
1、acl 给网段定义一个别名。
   需要注意的是:如果是具体的IP地址的话子网掩码应该写 32
   192.168.10.123/32  否则会报错
   acl  baidu  dstdomain  .baidu.com
  #目标地址
   acl  test   url_regex  ^http://www.kun.cc/test/.*\.txt
  # 以定义正则,定义不允许访问类型的文件。
2、http_access:允许哪些网段可以使用代理服务器。后面跟的是定义好的别名。
  需要注意的是:http_access 的顺序很重要。是从上至下匹配的,如果上一条匹配成功就不会再往下匹配了。
3、http_port  3128:客户端与代理服务器建立连接访问的端口号。
   3128用的不多,用的比较多的是8080
不允许访问baidu,其他网站是允许的 
这里有个细节需要注意:
  fanli  baidu  2行的顺序,因为fanli是指的是当前的网段是允许的,而访问baidu是拒绝的,在匹配的时首先匹配允许了网段是可以访问的,所以就不会匹配拒绝baidu这行。所以当再访问baidu的时候也是可以正常访问的。如果调换位置就会拒绝baidu了。
拒绝访问指定类型的后缀的网页:
后缀为:.txt的网站不可以访问:
根据上面的test别名:
   cache  deny   test
#凡是 .txt 结尾的网站都不做缓存。 allowe 则是:做缓存
配置文件中:cache_dir  ufs /var/spool/squid  100  16  256
  代理服务器缓存网页的存放目录。
  :100
#代理服务器会在这个目录里面创建一个100M的告诉缓存,硬盘当中创建
  :16
#这个目录下有16个子目录
  :256
#这个16个子目录下又有256个子目录
其中:cache_mem 10 MB:是从内存中划分10MB来做存储,这是个默认选项。存储:访问比较频繁的网页
重新指定squid的缓存目录位置:---用于存放缓存的服务器可以做逻辑卷,在逻辑卷上进行扩充。
当缓存无限增加的时候,设置缓存的限制:
     cache_swap_low  90
     cache_swap_high   95
#当磁盘使用率达到95%的时候,删除旧的缓存,直至使用率为:90%
系统缓存时间:
其中:
    1440:为最小缓存时间:单位分钟
    10080:最大缓存时间:单位分钟
    20%:当缓存的文件时间大于  10080 的20%时候,系统就会标记为旧的数据。
    
防火墙做NAT:这里做的是SNAT:
     因为有的人会避开浏览骑上的代理,从而可以直接使用NAT,上网。所以这里做了 SNAT
   iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
需要将FORWARD中的过滤去掉
   iptables -nL
# 不反向解析,查看防火墙列表
   iptables -nL --line-numbers
# 查看时标记行号
squid监控:---基于apache的,所以需要安装apache
安装完后直接输入命令:  sarg
进入到字体文件所在目录位置:
创建目录:报错的目录是默认是不存在的,所以需要手动创建
将字体文件拷贝到创建的目录下
在图形界面的网页中输入: localhost/sarg
     可以查看客户端访问的记录
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Proxy(代理)服务器 的相关文章

随机推荐

  • Flutter Image图片显示

    目录 参数详解 代码示例 效果图 完整代码 使用资源图片前必做两个步骤 1 在根目录下创建子目录 子目录中创建2 0x和3 0x 也可以创建4 0x 5 0x 但是2 0和3 0是必须的 目录 在对应目录中添加对应分辨率图片 图1 2 打开
  • 2020笔记本性价比之王_2020十大笔记本电脑性价比排行(最新笔记本电脑推荐)...

    2020十大笔记本电脑性价比排行 最新笔记本电脑推荐 1 HP 惠普 战99 15 6英寸笔记本电脑 2 Acer 宏碁 墨舞P50 15 6英寸笔记本电脑 3 HONOR 荣耀 MagicBook Pro 16 1英寸笔记本电脑 4 AS
  • C++中的Unicode编码:wchar, UTF-8,UTF-16,UTF-32

    C 在C11标准中加入了对Unicode编码的支持 新增了wchar t char16 t char32 t内置数据类型 cout lt lt sizeof char lt lt endl cout lt lt sizeof wchar t
  • 上传新文件项目到svn上

    一 在之前有svn项目的文件夹中检出 这一步主要是为了获得svn的仓库地址 二 在一个之前有的svn项目里面右键tortoiseSvn gt 版本库浏览器 就会出现这样的界面 然后在这个界面里右键里选择加入文件夹 选择本地的文件夹就可以了
  • Python剪刀石头布

    这是以前刚刚开始学习python时自己编的第一个小游戏 很简单 分享给大家 import random 胜 0 负 0 平 0 while True 对方 str random randint 1 3 我方 input 请选择你的出拳 剪刀
  • [C]编译器对char数组声明的一个行为

    1 概述 如果使用char 来声明char数组 那么编译器会自动计算后面的字面量字符数 再加上一个空字符 作为它的长度 实际上这个数组最后一位被编译器强行加上了 0 include
  • VS里面关于.cpp文件与.cu文件混合编译问题---不要在.cpp文件声明核函数(__device__()和global__())

    原文出处 点击打开链接 不要在 cpp文件声明核函数 否则会报错 具体可以参考下面两个链接 http blog csdn net lingerlanlan article details 25063331 utm source tuicoo
  • 如何自己手动搭建一个RSS订阅机器人(rssbot),自己做一个RSS阅读器

    当你想RSS订阅一些自己感兴趣的博客 却又苦于免费的RSS阅读器广告很多时 可以自己借助Telegram机器人搭建一个RSS订阅机器人 本文老王介绍下如何搭建一个Telegram RSS订阅机器人 以及如何把RSS订阅机器人拖到Telegr
  • JAVA - 可变对象与不可变对象

    不可变对象在并发程序中比较有用 由于其状态无法改变 因此无法被线程的干扰损坏或者被视为不一致状态 基本概念 不可变对象 Immutable Objects 即对象一旦被创建它的状态 对象的数据 也即对象属性值 就不能改变 任何对它的改变都应
  • U3D Transform基本移动函数: 移动、旋转、缩放

    1 指定方向移动 移动速度 float TranslateSpeed 10f Vector3 forward 表示 向前 transform Translate Vector3 forward TranslateSpeed 2 全方向移动
  • Java 8新特性探究(十一)Base64详解

    2019独角兽企业重金招聘Python工程师标准 gt gt gt BASE64 编码是一种常用的字符编码 在很多地方都会用到 但base64不是安全领域下的加密解密算法 能起到安全作用的效果很差 而且很容易破解 他核心作用应该是传输数据的
  • 数字IC时钟

    目录 前言 1 时钟的概念与性质 2 时钟源 3 时钟管理模块 3 1 时钟门控 3 2 时钟分频 3 3 时钟切换 前言 时钟信号对于整个芯片的功能有着至关重要的作用 一旦芯片级的时钟信号质量不高 会导致许多不受控的异常bug 本人目前还
  • 数据库(第五版)课后习题答案

    仅供参考 有任何问题概不负责 请同学们谨慎参考 数据库系统概论第五版 答案 第1章 绪论 1 试述数据 数据库 数据库系统 数据库管理系统的概念 答 l 数据 Data 描述事物的符号记录称为数据 数据的种类有数字 文字 图形 图像 声音
  • inc指令是什么意思_工作台自动循环运动PLC控制指令与梯形图

    点击箭头处 工业之家 选择 关注公众号 工作台自动循环运动PLC控制指令与梯形图 一 数据传送指令 数据传送指令包括MOV 传送 SMOV BCD码移位传送 CML 取反传送 BMOV 数据块传送 FMOV 多点传送 XCH 数据交换 这里
  • FeignClient注解中各种属性详解

    一 value name 这两个属性的作用是一样的 如果没有配置url 那么配置的值将作为服务的名称 用于服务的发现 反之只是一个名称 注意 这里写的是你要调用的那个服务的名称 而不是你自己的那个服务的名称 另外 如果同一个工程中出现两个接
  • C语言 IDE的介绍及安装

    目录 C语言 IDE介绍 GCC C Free Code Blocks CLang CLion XCode Dev C Turbo C Visual C 6 0 Visual Studio C语言 IDE安装 安装包 版本选择 注意事项 C
  • 使用VMware给Ubuntu增加磁盘容量

    一般只给虚拟机里面的Ubuntu很少的空间 到了空间不足就尴尬了 那么就扩充磁盘解决问题吧 一 VMware手动扩容 打开虚拟机 选择你要扩充的客户机 点击 编辑虚拟机设置 然后详细设置 选择硬盘 gt 扩展 gt 目标总磁盘大小 不是增量
  • [力扣c++实现] 152. 乘积最大子数组

    152 乘积最大子数组 给你一个整数数组 nums 请你找出数组中乘积最大的非空连续子数组 该子数组中至少包含一个数字 并返回该子数组所对应的乘积 测试用例的答案是一个 32 位 整数 子数组 是数组的连续子序列 示例 1 输入 nums
  • xshell无法连接虚拟机原因Connection failed. Type `help' to learn how to use Xshell prompt.

    问题分析 xshell无法连接的问题有多种 比如虚拟机没有安装ssh服务 虚拟机没有启动ssh服务 又或者是防火墙 禁用端口等问题 这些都比较容易解决 下面我介绍的是我遇到的一种比较难的无法连接情况 VMware无法在Windows下创建适
  • Proxy(代理)服务器

    代理服务器 代理服务器必须有DNS地址 如果开启转发需要在客户端设置DNS地址 NAT 是直接与目标服务器通信的 也就是直接访问的baidu服务器 目标地址是baidu服务器的地址 所以必须要有DNS来解析主机名 如果是通过代理客户端是没有