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,後面直接運行報錯,訪問權限不存在。以
linux下jdk安裝設定
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
【Linux】Linux下檢視伺服器配置的命令
目錄 一、伺服器型號 二、作業系統 三、CPU 四、記憶體 五、硬碟 六、其他 一、伺服器型號 dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product" 二
linux下在伺服器上配置scrapy框架的python爬蟲,使用mysql資料庫儲存
最近在做把 爬蟲部署到伺服器上,爬下來的資料再存到資料庫裡。 因為伺服器是linux系統的,所以我們事先需要配置一些環境檔案以及依賴的庫 1、裝python 這一步沒啥好說的吧 2、裝pip,然後再用pip裝依賴的庫: pip install pymysql
Linux下mongodb已設定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
Linux下Samba伺服器配置
之前一直在用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.
提升linux下TCP伺服器併發連線數(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
Linux下FTP伺服器搭建與配置
環境檢查 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [[email protected] ~]# uname -r 2.6.32-696.el6.x86_64
Linux下併發伺服器的實現
實現併發伺服器的方式有多種,下面說一下我瞭解到的幾種解決方案。 方案一:多程序併發伺服器 主程序監聽、accept()連線,子程序負責處理業務邏輯和流的讀取。 缺點:程序需