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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

构建Squid代理服务器-传统代理、透明代理、反向代理

發布時間:2023/12/6 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 构建Squid代理服务器-传统代理、透明代理、反向代理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Squid是Linux系統中最常用的一款開源代理服務軟件,主要提供緩存加速和應用層過濾控制的功能,可以很好的實現HTTP、FTP、DNS查詢以及SSL等應用的緩存代理。

正向代理:
根據實現的方式不同,代理服務可分為傳統代理和透明代理。

  • 傳統代理:普通的代理服務,多見于Internet環境,必須在客戶機的瀏覽器、QQ聊天工具、下載軟件等程序中手動設置代理服務器對的地址和端口,才能使用代理服務器來訪問網絡。對于網頁瀏覽器,訪問網站時的域名解析請求會發送給指定的代理服務器
  • 透明代理:提供與傳統代理相同的功能和服務,多見于局域網環境,其區別在于客戶機不需要指定代理服務器的地址和端口,而是通過默認路由、防火墻策略將Web訪問重定向,實際上仍然交給代理服務器處理。網頁瀏覽器訪問網站時的域名解析請求會優先發給DNS服務器

反向代理:將不同的URL請求分發到后臺不同的Web服務器上,通過squid反向代理,可以加速網站的訪問速度,同時互聯網用戶只能看到反向代理服務器的地址,加強網站的訪問安全。

官方地址:http://www.squid-cache.org/

參考文檔:http://www.squid-cache.org/Doc/config/

Squid安裝

1.編譯安裝Squid

將下載的Squid軟件包解壓至/opt目錄下。

[root@localhost abc]# tar zxvf squid-3.5.28.tar.gz -C /opt/

準備編譯環境,配置Squid的編譯選項并進行安裝。

yum install -y gcc gcc-c++ make cd /opt/squid-3.5.28./configure --prefix=/usr/local/squid \ //安裝目錄 --sysconfdir=/etc \ //單獨將配置文件修改到其他目錄 --enable-arp-acl \ //可以在規則中設置為直接通過客戶端MAC進行管理,防止客戶端使用IP欺騙 --enable-linux-netfilter \ //使用內核過濾 --enable-linux-tproxy \ //支持透明模式 --enable-async-io=100 \ //異步I/O,提升存儲性能 --enable-err-language="Simplify_Chinese" \ //錯誤信息的顯示語言 --enable-underscore \ //允許URL中有下劃線 --enable-poll \ //使用Poll()模式,提升性能 --enable-gnuregex //提升GNU正則表達式 make && make install

2.安裝完成后,創建鏈接文件、創建用戶和組。

ln -s /usr/local/squid/sbin/* /usr/local/sbin/ //便于使用squid命令useradd -M -s /sbin/nologin squid //創建用戶和組chown -R squid.squid /usr/local/squid/var/ //創建文件的屬性

3.編輯配置文件/etc/squid.conf

vim /etc/squid.conf cache_effective_user squid //添加 指定squid的程序用戶,用來設置初始化、運行時緩存的賬戶,否則啟動不成功 cache_effective_group squid //添加 指定賬號的基本組 coredump_dir /usr/local/squid/var/cache/squid

4.啟動squid服務,使用squid服務腳本。

(1)檢查配置文件的語法是否正確。

squid -k parse

(2)先初始化緩存目錄,調用squid程序來啟動服務。

squid -z //初始化緩存目錄squid //啟動服務

確認服務處于監聽狀態。

[root@localhost squid-4.1]# netstat -ntap | grep squid tcp6 0 0 :::3128 :::* LISTEN 86805/(squid-1)

(3)編寫squid啟動腳本,并使用chkconfig和service工具進行管理。

vim /etc/init.d/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" instart)netstat -natp | 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 -natp | grep squidelseecho "squid is not running"fi;;restart)$0 stop &> /dev/nullecho "正在關閉 squid..."$0 start &> /dev/nullecho "正在啟動 squid...";;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";; esac chmod +x /etc/init.d/squid //執行權限chkconfig --add squid //添加為系統服務 chkconfig --level 35 squid on

構建傳統代理服務器

案例需求描述:

  • 基于Internet環境。
  • 一臺Linux主機作為web服務器,啟用httpd服務。
  • 一臺Linux主機構建Squid服務,允許客戶機使用代理。
  • 一臺Windows7主機,指定所使用的代理服務器地址、端口號信息。
主機系統IP
squid 主機CentOS7172.16.100.110
web服務器CentOS7172.16.100.100
客戶機windows 7172.16.100.50

1.squid服務器的配置

(1)修改squid.conf配置文件

vim /etc/squid.confhttp_access allow all //允許任意客戶機使用代理服務 http_access deny all http_port 3128 cache_mem 64 MB //指定緩存功能所使用的內存空間大小,便于保持訪問較頻繁的WEB對象,容量最好為4的倍數,單位為MB,建議設為物理內存的1/4 reply_body_max_size 10 MB //允許用戶下載的最大文件大小,以字節為單位。默認設置0表示不進行限制 maximum_object_size 4096 KB

(2)在防火墻上添加允許策略

iptables -F setenforce 0 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

(3)重載squid服務

service squid reload //生效修改后的配置文件

2.客戶機的代理設置

(1)Windows客戶機的代理配置

打開瀏覽器(以IE為例,其他類似),菜單欄 -> 工具 -> Internet 選項 -> 連接 -> 局域網設置 -> 代理服務器,按照以下格式設置。

(2)Linux客戶機的代理配置

在命令行界面中使用代理服務器如elinks網頁瀏覽器、wget下載工具,必須通過環境變量來指定代理服務器的地址、端口等信息。

vim /etc/profileHTTP_PROXY=http://192.168.235.206:3128 //使用HTTP協議指定代理HTTPS_PROXY=http://192.168.235.206:3128 //使用HTTPS協議指定代理FTP_PROXY=http://192.168.235.206:3128 //使用FTP協議指定代理NO_PROXY=192.168.10.,192.168.20. //對兩個局域網段指定代理export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXYsource /etc/profile

3.網站服務器的設置

(1)安裝httpd,關閉防火墻

yum install httpd -y systemctl stop firewalld.servie setenforce 0

(2)啟動httpd服務并加入開機自啟動

systemctl start httpd.service chkconfig httpd on

(3)創建index.html

echo "<h1>Squid-Web1</h1>" > /var/www/html/index.html

4.代理服務的驗證

在客戶機中通過瀏覽器訪問目標網站http://172.16.100.100/

查看Squid訪問日志的新增記錄

查看Web訪問日志的新增記錄

當客戶機使用代理后,web服務器并不知道客戶機的真實ip,實際上是由代理服務器訪問。

構建透明代理服務器

案例需求描述:

  • 基于局域網主機通過Linux網關訪問Internet的環境。
  • 一臺Linux主機作為Internet上的web服務器,啟動httpd服務。
  • 一臺Linux主機作為網關服務器,并構建Squid服務提供代理服務。
  • 一臺windows7主機作為局域網的客戶機,只需正確設置IP地址、默認網關。
主機系統IP
squid 網關CentOS7ens33:192.168.100.1 ens37:12.0.0.1
web服務器CentOS712.0.0.12
客戶機windows 7192.168.100.20

1.配置Squid支持透明代理

vim /etc/squid.confhttp_port 192.168.100.1:3128 transparent //添加 提供透明服務service squid reload //重新加載服務

配置文件其余地方的修改參考前面的傳統代理的配置處。

2.設置iptables的重定向策略

將局域網段192.168.100.0/24且訪問HTTP、HTTPS等協議的數據包轉交給運行在本機3128端口上的Squid服務進行處理。

iptables -Fiptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

3.開啟路由轉發功能

vim /etc/sysctl.conf net.ipv4.ip_forward = 1sysctl -p

4.網站服務器配置如上述,操作步驟一樣

5.驗證透明代理的使用

如果客戶機上存在手動指定的代理服務器設置,應將其去除。在Linux客戶機,可以通過unset命令清除。

unset HTTP_PROXY HTTPS_PROXY

在客戶機中通過瀏覽器訪問目標網站http://12.0.0.12/

驗證結果:

在Squid代理服務器中,發現客戶機訪問網站服務器的記錄;


在被訪問的web服務器中,發現來自代理服務器的訪問記錄。

反向代理

客戶端請求訪問 WEB 服務時,DNS 將訪問的域名解析為 Squid 反向代理服務器的 IP 地址,這樣客戶端的 URL 請求將被發送到反向代理服務器。如果 Squid 反向代理服務器中緩存了該請求的資源,則將該請求的資源直接返回給客戶端,否則反向代理服務器將向后臺的 WEB 服務器請求資源,然后將請求的應答返回給客戶端,同時也將該應答緩存在本地,供下一個請求者使用。

案例環境:
主機系統IP
squid 網關CentOS7ens33:192.168.100.1 ens37:12.0.0.1
web1服務器CentOS7192.168.100.100
web2服務器CentOS7192.168.100.120
客戶機windows 712.0.0.50

1.配置squid服務器

vim /etc/squid.confhttp_port 192.168.100.1:3128 transparent //啟動透明代理http_port 12.0.0.1.1:80 accel vhost vport cache_peer 192.168.100.100 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 cache_peer 192.168.100.120 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2 cache_peer_domain web1 web2 www.yun.comservice squid restart

2.配置防火墻策略

iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

3.配置兩個網站服務器,操作步驟如上述一樣,不同的是修改web主頁。

#web1 echo "<h1>Squid-Web1</h1>" > /var/www/html/index.html#web2 echo "<h1>Squid-Web2</h1>" > /var/www/html/index.html

4.配置客戶端

這里可以使用DNS服務來解析,這里我們為了方便,就在hosts 文件里直接指定。

修改C:\Windows\System32\drivers\etc\hosts 文件

5.測試反向代理

在客戶端訪問目標網站www.yun.com

關閉web1的httpd服務,在web1服務器清除緩存,訪問網站,如圖所示:

然后在客戶端清除緩存訪問www.yun.com ,如圖所示:

刷新一次:

可以看到反向代理緩存成功。

轉載于:https://blog.51cto.com/11134648/2152058

總結

以上是生活随笔為你收集整理的构建Squid代理服务器-传统代理、透明代理、反向代理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 北岛玲在线 | 久久蜜臀| 国产精品午夜在线 | 成人免费影片 | 久久中文一区 | 国产一区亚洲二区三区 | 91视频社区 | 一区黄色| 成人动漫在线观看视频 | 成人免费毛片片v | 我们俩电影网mp4动漫官网 | 日韩在线中文字幕视频 | 国产精品极品白嫩在线 | 久久av色| 姑娘第5集在线观看免费好剧 | 无码人妻精品一区二区三 | 亚洲免费成人在线 | 一区二区三区韩国 | 精品一区91 | 浪漫樱花动漫在线观看免费 | eeuss日韩| 女人高潮被爽到呻吟在线观看 | 国产成人无码www免费视频播放 | 国产色视频一区二区三区qq号 | 欧美亚洲三级 | www.日批| 久久午夜电影 | 亚洲欧美综合另类自拍 | 91亚洲国产成人精品性色 | 性视频久久 | 日本电影一区二区三区 | 亚洲中文字幕97久久精品少妇 | 免费成人在线电影 | 男人插女人下面视频 | 亚洲九区 | 日本三级小视频 | 欧美日韩精品一区二区三区蜜桃 | 6699嫩草久久久精品影院 | 欧美色视频在线观看 | 亚洲一区二区美女 | 国产一区视频在线播放 | 欧美一区二区三区免费看 | 国产在线精品观看 | 91视频免费| 国产91av视频| 国产三级在线看 | 国产综合图片 | 国产又黄又粗 | 欧美精品a区 | 91在线视频国产 | 亚洲国产日韩一区无码精品久久久 | 色屁屁一区二区三区 | 蜜臀久久99静品久久久久久 | 久久亚洲精品国产精品黑人v | 林由奈在线观看 | 影院色原网站 | 免费成人在线视频观看 | 被警察猛c猛男男男 | 公肉吊粗大爽色翁浪妇视频 | 老司机深夜视频 | 一本在线| 国产精品16p | 三级免费黄录像 | 日美av | 污黄视频网站 | 91国视频| 男人天堂网av | 天天干夜夜怕 | 久久99久久99精品 | 久久精品中文字幕 | 久久无码精品丰满人妻 | 亚洲 欧美 综合 | 久久久成人精品 | 青青草国产在线视频 | 国产不卡av在线播放 | 韩国精品一区二区 | 国产精品3p视频 | 黄色成人一级片 | 男人久久久 | 日皮在线观看 | 男女作爱网站 | 日韩黄色一级视频 | 欧美视频导航 | 无码人妻精品一区二区三区9厂 | 免费毛片网站 | 色吟av| 国产做爰全过程免费视频 | 久久精品无码一区 | 99精品人妻无码专区在线视频区 | 精品国产传媒 | 性欧美视频在线观看 | 91亚洲精品久久久久久久久久久久 | 日本美女日批视频 | 看av在线| 亚洲高清在线观看 | 亚洲无人区码一码二码三码的含义 | 国产精品主播一区二区 | 亚洲不卡在线播放 | 可以免费观看的毛片 |