2013-10-05 44 views
23

總之,我要尋找一個簡單的方法來做到以下(請在代碼樣本,如果可能的話):魷魚:轉發到另一個代理(與父代理認證信息)

  • 集並且在我的電腦上啓動代理服務器(說地址是10.10.200.200:6767),它可以捕獲來自我的電話的所有Web請求
  • 一旦來自電話的請求來到此代理,它將添加自定義驗證詳細信息(my_username/my_password)並將其轉發給機構代理(說地址是10.1.2.3:80)
  • 我不需要任何緩存/加速我的本地代理(10.10.200.200)。它只需要捕捉請求並轉發它。

現在,更多的細節,充分說明我的情況:

在我的學院,是需要身份驗證通過代理,使我們可以連接到互聯網。我通常在出現彈出窗口時輸入我的LDAP用戶名/密碼進行身份驗證。

現在,我想將手機連接到學院WiFi,但是我的手機沒有使用代理進行身份驗證的選項。只能指定一個代理地址。因此,我打算在我的電腦上設置一個本地代理,以便接收來自手機的所有請求,添加驗證詳細信息並通過計算機將其傳遞給我的代理服務器代理。

我安裝了squid3(在Ubuntu上),但看着配置文件,我迷路了。我嘗試了谷歌搜索,但它看起來很複雜。

希望有人能提供幫助。

回答

25

我魷魚教程,最簡單的配置做到這一點想通的是:

http_access allow all 
http_port 3128 

coredump_dir /var/spool/squid3 
refresh_pattern ^ftp:  1440 20% 10080 
refresh_pattern ^gopher: 1440 0% 1440 
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 
refresh_pattern (Release|Packages(.gz)*)$  0  20%  2880 
refresh_pattern .  0 20% 4320 

cache_peer 10.1.2.3 parent 80 0 no-query default login=my_username:my_password 
never_direct allow all 

這些線應該讓你轉發到另一個代理服務器的所有請求(更改IP地址,在本地計算機上工作的代理服務器因此)。 但是,請注意在上述腳本中,我禁用了任何訪問控制/過濾器,因此有可能任何人都可以連接並使用您的代理。你需要添加額外的代碼來限制只有一些設備進入。

+1

我需要添加以下內容: ''' 訪問日誌無 cache_log無 ''' –

+0

FTR:限制訪問您的唯一宿主,註釋掉'的http_access允許all'線,並在追加結束三行:'acl allowed_ip src localhost','http_access allow allowed_ip','http_access deny all' *(yes,'deny all'必須在最後,不知道爲什麼)*。對於安全的情況:不,不能檢查它是否與其他主機的netcat一起工作,只能通過http *工作(squid不會拒絕tcp,只有http)*。 –