日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Squid安装与配置

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Squid安装与配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

squid代理服務器

squid是一種用來緩存Internet數據的軟件。接受來自客戶機需要下載的目標的請求并適當的處理這些請求。也就是說,如果一個客戶端想要打開默認網站,它請求squid為它取得這個頁面。squid隨之連接到遠程服務器并向這個頁面發出請求。然后,squid顯式地聚集數據到客戶端機器,而且同時復制一份。當下一次有人需要同一頁面時,squid可以簡單的從磁盤中讀到它,那樣數據會立即傳輸到客戶機上。

squid概述

Squid(Squid cache,簡稱Squid)是Linux系統中最常用的一款開源代理服務軟件,可以很好地實現HTTP和FTP,以及DNS查詢、SSL等應用的緩存代理,功能十分強大,本篇博客詳細介紹了傳統代理、透明代理,squid日志分析的配置。

squid的官方網站

Squid 分類

按照代理類型的不同,可以將Squid 代理分為正向代理和反向代理,正向代理中,根據實現方式的不同,又可以分為普通代理和透明代理。

  • 普通代理:需要客戶機在瀏覽器中指定代理服務器的地址、端口;
  • 透明代理:適用于企業的網關主機(共享接入Internet)中,客戶機不需要指定代理服務器地址、端口等信息,代理服務器需要設置防火墻策略將客戶機的Web訪問數據轉交給代理服務程序處理;
  • 反向代理:是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。

squid代理的作用

  • 通過緩存方式為用戶提供Web加速訪問

  • 對用戶的Web訪問請求進行過濾控制

緩存代理概述

Web代理的工作機制

代理的基本類型

  • 傳統代理:適用于lnternet,需要明確指定服務器
  • 透明代理:客戶機不需要指定代理服務的地址和端口,而是通過默認路由、防火墻策略將Web訪問重定向給代理服務器處理

代理服務器的工作流程

  • 當代理服務器中有客戶端需要的數據時:

    a. 客戶端向代理服務器發送數據請求;

    b. 代理服務器檢查自己的數據緩存;

    c. 代理服務器在緩存中找到了用戶想要的數據,取出數據;

    d. 代理服務器將從緩存中取得的數據返回給客戶端。

  • 當代理服務器中沒有客戶端需要的數據時:

    1.客戶端向代理服務器發送數據請求;

    2.代理服務器檢查自己的數據緩存;

    3.代理服務器在緩存中沒有找到用戶想要的數據;

    4.代理服務器向Internet 上的遠端服務器發送數據請求;

    5.遠端服務器響應,返回相應的數據;

    6.代理服務器取得遠端服務器的數據,返回給客戶端,并保留一份到自己的數據緩存中。

使用代理的好處

  • 提高Web訪問速度
  • 隱藏客戶機的真實IP地址

傳統代理

環境準備
名稱地址
squid192.168.2.10
web192.168.2.11
客戶機192.168.2.12
[root@squid ~]# ls anaconda-ks.cfg automake-1.16.2.tar.gz squid-4.13.tar.gz [root@squid ~]# tar -xf squid-4.13.tar.gz # 解壓 [root@squid ~]# yum -y install gcc gcc-c++ # 安裝編譯工具 [root@squid ~]# cd squid-4.13/ [root@squid squid-4.13]# ./configure --prefix=/usr/local/squid \ # 配置 --sysconfdir=/etc \ --enable-arp-acl \ --enable-linux-netfilter \ //內核過濾 --enable-linux-tproxy \ //透明代理功能模塊 --enable-async-io=100 \ //io對于io的優化 異步I/O 提升存儲性能 --enable-err-language="Simplify_Chinses" \ //err-language 報錯信息設置為中文 --enable-poll \ //提升功能 使用poll()模式 --enable-gnuregex \ //支持正則表達式 --enable-underscore //允許URL支持下劃線[root@squid squid-4.13]# make && make install # 編譯以及安裝[root@squid squid-4.13]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/ # 配置軟鏈接 [root@squid squid-4.13]# useradd -M -s /sbin/nologin squid # 創建squid用戶 [root@squid squid-4.13]# chown -R squid.squid /usr/local/squid/var/ # 授權# 修改主配置文件 [root@squid ~]# vim /etc/squid.conf 56 http_access allow all # 開啟允許所有訪問 59 #http_access deny all # 注釋掉拒絕所有訪問 62 http_port 3128 # 設置監聽的IP與端口號 63 cache_effective_user squid # 緩存相對的用戶 64 cache_effective_group squid # 緩存相對的組[root@squid ~]# squid -k parse #驗證語法配置文件語法[root@squid ~]# squid -z #初始化緩存目錄 [root@squid ~]# 2020/11/04 19:38:25| Created PID file (/usr/local/squid/var/run/squid.pid) 2020/11/04 19:38:25 kid1| Set Current Directory to /usr/local/squid/var/cache/squid 2020/11/04 19:38:25 kid1| Creating missing swap directories 2020/11/04 19:38:25 kid1| No cache_dir stores are configured. 2020/11/04 19:38:25| Removing PID file (/usr/local/squid/var/run/squid.pid)[root@squid ~]# squid # 啟動服務 [root@squid ~]# ss -nutlp | grep squid # 查看端口 udp UNCONN 0 0 *:55124 *:* users:(("squid",pid=75242,fd=7)) udp UNCONN 0 0 [::]:37289 [::]:* users:(("squid",pid=75242,fd=5)) tcp LISTEN 0 128 [::]:3128 [::]:* users:(("squid",pid=75242,fd=10))# 創建systemctl啟動腳本 [root@squid ~]# cd /etc/init.d/ [root@squid init.d]# vim squid #!/bin/bash #chkconfig: 2345 90 25 PID="/usr/local/squid/var/run/squid.pid" CONF="/etc/squid.conf" CMD="/usr/local/squid/sbin/squid"case $1 in start)netstat -nutlp | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在啟動 squid..."$CMDfi;; stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;; status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -nutlp | grep squidfi esac[root@squid init.d]# chmod +x squid # 賦予執行權限 [root@squid init.d]# chkconfig --add squid #添加到squid服務 [root@squid init.d]# chkconfig --level 35 squid on #設置開機啟動[root@squid init.d]# netstat -nutlp | grep squid tcp6 0 0 :::3128 :::* LISTEN 75242/(squid-1) udp 0 0 0.0.0.0:55124 0.0.0.0:* 75242/(squid-1) udp6 0 0 :::37289 :::* 75242/(squid-1) # 進行手動重啟測試 [root@squid ~]# service squid stop [root@squid ~]# service squid start 正在啟動 squid... [root@squid ~]# netstat -nutlp | grep 3128 tcp6 0 0 :::3128 :::* LISTEN 1433/(squid-1) # 設置緩存參數 [root@squid ~]# vim /etc/squid.conf http_port 3128 '//下面添加' cache_mem 64 MB # 緩存64M的內容 reply_body_max_size 10 MB # 禁止下載的超過10MB的文件 maximum_object_size 4096 KB # 超過4MB:的文件不進行緩存

配置web端和客戶端

[root@web ~]# yum -y install httpd [root@web ~]# systemctl start httpd [root@web ~]# netstat -nutlp | grep 80 tcp6 0 0 :::80 :::* LISTEN 1363/httpd [root@web ~]# cat /var/log/httpd/access_log # 此時查看日志是沒有任何的消息的
配置客戶端

配置手動代理,設置該ip為squid服務端ip

訪問web服務器

在命令行查看日志文件 [root@web ~]# cat /var/log/httpd/access_log # 客戶端訪問web服務器,成功變為代理服務器ip 192.168.2.10 - - [04/Nov/2020:14:41:53 +0800] "GET / HTTP/1.1" 403 4897 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" 192.168.2.10 - - [04/Nov/2020:14:41:53 +0800] "GET /noindex/css/bootstrap.min.css HTTP/1.1" 200 19341 "http://192.168.2.11/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" 192.168.2.10 - - [04/Nov/2020:14:41:53 +0800] "GET /noindex/css/open-sans.css HTTP/1.1" 200 5081 "http://192.168.2.11/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
傳統代理和透明代理的區別
傳統代理需要客戶端在瀏覽器上指定代理服務器的ip比較麻煩。 透明代理不需要在瀏覽器指定,需要將網關設為代理服務器。

總結

以上是生活随笔為你收集整理的Squid安装与配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。