1. 程式人生 > >linux 下代理伺服器的設定 squid

linux 下代理伺服器的設定 squid

安裝

環境:CentOS,Linux mss 2.6.18-128.el5PAE #1 SMP Wed Jan 21 11:19:46 EST 2009 i686 i686 i386 GNU/Linux

直接通過rpm包安裝squid,提示:

warning: squid-2.6.STABLE21-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
        perl(URI::URL) is needed by squid-2.6.STABLE21-3.el5.i386

必須先安裝perl URI,如下:

rpm -ivh perl-URI-1.35-3.noarch.rpm

rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm

配置

vim /etc/squid/squid.conf

增加acl和http_access如下:

acl MyNetwork src 172.25.201.0/24 #客戶機的網路

...

http_access allow MyNetwork#允許該網路的http請求

修改完後用squid -k check檢查配置檔案語法

然後直接敲squid執行

修改瀏覽器的代理設定,指向Squid伺服器地址,預設的http_port為3128(見squid.conf)

但是測試瀏覽器上網失敗了,WIRESHARK抓包顯示TCP請求被拒絕,“Destination unreachable (Host administratively prohibited)”。經驗不足,倒騰了半天終於知道是防火牆的問題。修改/etc/sysconf/iptables,加入行-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT。然後service iptables restart。終於搞定

安裝

./configure --disable-internal-dns
make
make install
修改squid.conf加以下兩句
dns_children 20
redirect_children 20
再啟動squid,哇........,這才是我要的squid!!!!!!!!!!!!!
ps一下發現多了20個dnsserver程序。再分析:可能是此引數把squid的逐個查詢DNS改為了並行查詢。現已執行數天,尚未發現問題。

yum install squid

修改配置檔案 /etc/squid/squid.conf
(如果該檔案配置壞掉了,有 squid.conf.default 可以備用,兩個檔案在剛安裝後是一模一樣的)

# squid 埠,預設是3128
http_port 3128

# 指定硬碟緩衝區的大小
# ufs: 快取型別
# /var/spool/squid:快取目錄
# 300:快取大小(Mbytes)
# 允許在“/tmp”下建立的第一級子目錄數為16,每個第一級子目錄下可以建立的第二級子目錄數量為256
cache_dir ufs /var/spool/squid 300 16 256

# 自定義某個IP或者某網段,使用 http_access 選項允許該列表
acl our_networks src 11.11.11.11/255.255.255.255
acl our_networks src 12.12.12.12/29
http_access allow our_networks

# 伺服器的主機名,可隨便定義
visible_hostname 221_170

# 關閉此項將在訪問網站時顯示的IP是unknown,如果開啟則顯示的是你client的內網IP
forwarded_for off

# 防止知道客戶的內部 ip
header_access Via deny all

# 防止知道代理伺服器的伺服器名以及埠
header_access X-Forwarded-For deny all

啟動 squid
service squid start

squid 的 log:/var/log/squid/
access.log cache.log squid.out store.log

給出一些 header,可以遮蔽它們

Accept

HTTP_ACCEPT

Accept-Charset

HTTP_ACCEPT-CHARSET

Accept-Encoding

HTTP_ACCEPT-ENCODING

Accept-Language

HTTP_ACCEPT-LANGUAGE

Accept-Ranges

HTTP_ACCEPT-RANGES

Age

HTTP_AGE

Allow

HTTP_ALLOW

Authorization

HTTP_AUTHORIZATION

Cache-Control

HTTP_CACHE-CONTROL

Connection

HTTP_CONNECTION

Content-Base

HTTP_CONTENT-BASE

Content-Disposition

HTTP_CONTENT-DISPOSITION

Content-Encoding

HTTP_CONTENT-ENCODING

Content-Language

HTTP_CONTENT-LANGUAGE

Content-Length

HTTP_CONTENT-LENGTH

Content-Location

HTTP_CONTENT-LOCATION

Content-MD5

HTTP_CONTENT-MD5

Content-Range

HTTP_CONTENT-RANGE

Content-Type

HTTP_CONTENT-TYPE

Cookie

HTTP_COOKIE

Date

HTTP_DATE

ETag

HTTP_ETAG

Expires

HTTP_EXPIRES

From

HTTP_FROM

Host

HTTP_HOST

If-Match

HTTP_IF-MATCH

If-Modified-Since

HTTP_IF-MODIFIED-SINCE

If-None-Match

HTTP_IF-NONE-MATCH

If-Range

HTTP_IF-RANGE

Last-Modified

HTTP_LAST-MODIFIED

Link

HTTP_LINK

Location

HTTP_LOCATION

Max-Forwards

HTTP_MAX-FORWARDS

Mime-Version

HTTP_MIME-VERSION

Pragma

HTTP_PRAGMA

Proxy-Authenticate

HTTP_PROXY-AUTHENTICATE

Proxy-Authentication-Info

HTTP_PROXY-AUTHENTICATION-INFO

Proxy-Authorization

HTTP_PROXY-AUTHORIZATION

Proxy-Connection

HTTP_PROXY-CONNECTION

Public

HTTP_PUBLIC

Range

HTTP_RANGE

Referer

HTTP_REFERER

Request-Range

HTTP_REQUEST-RANGE

Retry-After

HTTP_RETRY-AFTER

Server

HTTP_SERVER

Set-Cookie

HTTP_SET-COOKIE

Title

HTTP_TITLE

Transfer-Encoding

HTTP_TRANSFER-ENCODING

Upgrade

HTTP_UPGRADE

User-Agent

HTTP_USER-AGENT

Vary

HTTP_VARY

Via

HTTP_VIA

Warning

HTTP_WARNING

WWW-Authenticate

HTTP_WWW-AUTHENTICATE

Authentication-Info

HTTP_AUTHENTICATION-INFO

X-Cache

HTTP_X-CACHE

X-Cache-Lookup

HTTP_X-CACHE-LOOKUP

X-Forwarded-For

HTTP_X-FORWARDED-FOR

X-Request-URI

HTTP_X-REQUEST-URI

X-Squid-Error

HTTP_X-SQUID-ERROR

Negotiate

HTTP_NEGOTIATE

X-Accelerator-Vary

HTTP_X-ACCELERATOR-VARY

Squid 使用者名稱密碼認證
利用 apache 攜帶的工具 htpasswd 生成密碼檔案並新增相應的使用者資訊,可能需要寫全 htpasswd 的路徑(如果這個伺服器上有若干網站,選擇使用80埠的那個目錄下的htpasswd)
/usr/bin/htpasswd -c /etc/squid/passwd testuser
根據提示輸入密碼:1234
成功後將會在 /etc/squid/passwd 中寫入:
testuser:cuUEnEwyMTcGY
第一列表明使用者名稱,第二列表明密碼

修改 squid 配置檔案:
# 定義了認證方式為 basic,認證程式的路徑,認證程度需要讀取的帳戶檔案(注意 ncsa_auth 和 上個步驟建立的 passwd 的路徑)
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
# 自定義一條名為 auth_user 的ACL,ACL型別為 proxy_auth 通過外部程式進行使用者認證方式,列表值為REQUIRED,說明接受所有合法使用者的訪問,然後使用 http_access 選項允許該列表
acl auth_user proxy_auth REQUIRED
http_access allow auth_user

體驗:
- 在沒有開啟使用者名稱密碼認證時,能成功地只允許某些 IP 訪問代理伺服器,並且遮蔽掉客戶端的資訊。
- 當開啟使用者名稱密碼認證時,只要驗證成功,無論 IP 是什麼,都能夠使用代理伺服器。

驗證方法:
瀏覽器選單 - 工具 - Internet選項 - 連線 - 區域網設定 - 勾選“為LAN使用代理伺服器”,輸入代理伺服器的IP和埠

然後看是否能正常瀏覽網頁,如果是通過使用者名稱密碼驗證的,則會跳出驗證框,如果不在IP允許列表裡,則顯示的頁面是禁止訪問。

另外,在淘寶旺旺這個工具上也可做類似操作,看能否正常執行該軟體。

相關推薦

linux 代理伺服器設定 squid

安裝 環境:CentOS,Linux mss 2.6.18-128.el5PAE #1 SMP Wed Jan 21 11:19:46 EST 2009 i686 i686 i386 GNU/Linux 直接通過rpm包安裝squid,提示: warning: squid-

Linux代理伺服器配置

1.安裝squid [[email protected] ~]# yum install squid -y 安裝: squid.x86_64 7:3.5.20-12.el7.x86_64.rpm

linux代理上網設定

第一種情況是ISA伺服器代理的設定 ubuntu12.04環境 ,如果公司用的是isa伺服器,可能設定就稍微有些麻煩了,起初我也是在網路上查找了很久,終於找出了正確的方法: 瀏覽器上網就不用說了,直接開啟火狐瀏覽器的首選項,設定代理上網就可以了,當想用終端install

squid 代理伺服器設定全攻略(多圖)

上網了,不免會遭到種種攻擊,有時還碰到一些網站無法訪問,或者訪問速度特別慢等現象,面對這些現象,代理伺服器作為網路訪問的紐帶就應運而生了。通過使用代理伺服器可以將我們的真實IP地址隱藏起來,而且在一定程度上還可以提高網路訪問的範圍和速度。代理伺服器的存在一般是不公開的,可以

linux為git設定臨時代理

linux下為Git設定代理 git config --global http.proxy http://proxy.com:1234   git config --global https.proxy http://proxy.com:1234   git config --global http

linux export只能設定臨時變量

變量 還需 報錯 設定 linu mina pytho rmi 系統環境 今天在調用ABBYY的時候,需要傳遞APPID和APPPASSWD給系統環境才能夠執行相應的python調用代碼。 設置之後,因為寫代碼自己關掉了terminal,後面直接運行報錯,訪問權限不存在。以

linuxjdk安裝設定

1. 解壓tar tar -xzvf 包名.tar.gz   2、配置jdk環境變數 vi /etc/profile   export JAVA_HOME=/home/jdk1.8.0_121 export PATH=$PATH:$JAVA_HOME/

Linux為命令設定別名的方法

               我們都知道,在管理和維護Linux系統的過程中,將會使用到大量命令,有一些很長的命令或用法經常被用到,重複而頻繁的輸入某個很長命令或用法是不可取的。這時可以使用 別名 功能將這個過程簡單化。Linu

LinuxLinux檢視伺服器配置的命令

目錄 一、伺服器型號 二、作業系統 三、CPU 四、記憶體 五、硬碟 六、其他 一、伺服器型號 dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product" 二

linux伺服器上配置scrapy框架的python爬蟲,使用mysql資料庫儲存

最近在做把 爬蟲部署到伺服器上,爬下來的資料再存到資料庫裡。 因為伺服器是linux系統的,所以我們事先需要配置一些環境檔案以及依賴的庫 1、裝python 這一步沒啥好說的吧 2、裝pip,然後再用pip裝依賴的庫: pip install pymysql

Linuxmongodb已設定server自啟動,如何啟動資料庫客戶端

在設定自啟動情況下: I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProt 報錯,說是自啟動佔用埠

對於Linux伺服器程式設計(2)

對於驚群問題,我們可以使用一個主執行緒來接受連線,並且把這個連線套接字傳遞到子程序裡面,讓子程序來處理這個連線。這種方法需要程序間通訊:通過Unix套接字來在程序之間傳遞套接字。【注意不能使用Unix套接字***直接***傳遞描述符到子程序,因為雖然父程序和子程序獲得的檔案描述符相同,但是子程序

對於Linux伺服器程式設計(1)

在Linux下面,對於海量連線並且每個連線在大部分時間裡面都是不活躍的情況下,我們使用Epoll來解決C10K[C10M]問題。 1.如何使用Epoll:man Epoll。即為三個系統呼叫。 2.在伺服器擁有多個CPU的情況下,我們需要多執行緒或者多程序來幫助我們提高程式的效能,所以就需要

linux將檔案設定為swap

在網上弄了一臺VPS,結果安裝完系統發現沒有swap。因為記憶體比較小,沒有swap有時候容易卡死,於是打算設定一個檔案充當swap。以前幹過這事,不過因為一般裝系統時候會設,所以這功能基本用不到,漸漸也就忘了。今天又查了一下,記錄在此備忘。   先建立一個固定大小的檔案 sudo dd if

LinuxSamba伺服器配置

    之前一直在用Virtualbox和vagrant來在本地搭建虛擬機器,但是各種意外情況,煩的能搞死你,莫名其妙的崩潰,出錯(也有可能是我的問題),所以決定用之前熟悉的VMware來搭建開發環境。在本地(win)開發時需要能夠和虛擬機器共享資料夾,VMware自帶的

按照別人的教程寫的 linux mail伺服器 的搭建

用於搭建的伺服器資訊 阿里雲 Centos 6.5 32位 Postfix-2.8.12.tar.gz      Postfix MTA(郵件傳輸代理) Dovecot-2.1.8.tar.gz      IMAP 和 POP3 郵件伺服器 Postfixadmin-2.

提升linuxTCP伺服器併發連線數(limit)

https://cloud.tencent.com/developer/article/1069900 1、修改使用者程序可開啟檔案數限制   在Linux平臺上,無論編寫客戶端程式還是服務端程式,在進行高併發TCP連線處理時,最高的併發數量都要受到系統對使用者單一程序同時可開

Linux Eureka 伺服器的部署

                        1. 檢視 Linux 相關資訊        版本檢視# cat /etc/issueCentOS release 6.5 (Final)        位數檢視# getconf LONG_BIT64        第 2 - 4 步是 Eureka Ser

LinuxFTP伺服器搭建與配置

環境檢查 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [[email protected] ~]# uname -r 2.6.32-696.el6.x86_64

Linux併發伺服器的實現

實現併發伺服器的方式有多種,下面說一下我瞭解到的幾種解決方案。 方案一:多程序併發伺服器 主程序監聽、accept()連線,子程序負責處理業務邏輯和流的讀取。            缺點:程序需