參考文檔:
3Proxy再探 ——實現二級代理上網
在VPS上用3Proxy架設http代理和socks代理(Ubuntu)
3proxy是俄羅斯人開發的一款開源輕量級的Proxy 伺服器軟體,功能很強大。我們這裡只是使用它的代理功能來實現小型區域網路藉助一台雙網卡
(同時接2個網路)能夠訪問Internet的機器上網的例子。
樣本:3台機器192.168.1.100-102 (其中192.168.1.100 雙網卡,同時也接入了公司內網,可以通過公司的Proxy 伺服器10.42.20.8:80上網)。
我們在192.168.1.100上安裝3proxy來啟動服務代理,使得2台區域網路的機器(192.168.1.101-102)能夠也能夠上網。
1、下載3proxy
http://www.3proxy.ru/download/
2、編譯3proxy(將壓縮包下載至使用者目錄下,本用例是/home/sam/)
tar zxf 3proxy-0.6.1.tgz
cd 3proxy-0.6.1
make –f Makefile.Linux
編譯成功後在/src/目錄下 有一個3proxy 執行檔案產生。
3、3proxy.cfg設定檔配置如下
#!/usr/local/bin/3proxy
nserver *.*.*.* 該處是你需要修改的地方,以你實際的內網的DNS伺服器為準
nserver *.*.*.*
nscache 65536
log /home/sam/3proxy-0.6.1/3proxy.log D
logformat "- +_G%t.%. %D %C TCP_MISS/200 %I %1-1T %2-2T %U DIRECT/%R application/unknown"
archiver rar rar a -df -inul %A %F
rotate 30
external 10.42.100.21
#external 0.0.0.0
# external is address 3proxy uses for outgoing connections. 0.0.0.0 means any
# interface. Using 0.0.0.0 is not good because it allows to connect to 127.0.0.1
internal 192.168.1.100
dnspr
auth iponly strong
#allow * * 192.168.1.101/200
#allow user1
#auth iponly
allow *
#allow * * * 80-88,8080-8088,8001-8010
#allow * * * 443,8443,8001-8010
parent 1000 http 10.41.20.8 80
proxy -a -p3128
socks -a -p3129
#nserver nscache 設定你的DNS快取服務器IP以及緩衝大小
#dnspr 使能dns 服務
#external 10.42.100.21 設定你的雙網卡機器的非區域網路IP
#internal 192.168.1.100 雙網卡機器的區域網路IP
#allow * 允許所有代理請求
#parent 1000 http 10.41.70.8 80 user:passwd 10.41.70.8是你的雙網卡機器的上網Proxy 伺服器IP80 是代理連接埠user:passwd是你Proxy 伺服器驗證憑證
#proxy -a -p3128 http代理連接埠3128 這個是你的雙網卡機器設定的對區域網路機器的代理HTTP連接埠
#socks -a -p3129 socks代理連接埠3129
4、運行3proxy服務
/src/3proxy 3proxy.cfg
同時將192.168.1.101-102機器上的 瀏覽器代理設定為192.168.1.100:3128即可,上網大功告成!
補充說明:該軟體還可以設定多級主代理鏈,還可以分權重,很多功能。具體可以見他的參考手冊docs!
另一篇參考貼出,因為這篇文章被牆了。
3proxy 0.6 二級代理(redirection)無法正常使用解決方案一例情況如下:內網有一台主機(192.168.99.xxx)可以訪問外網,並開啟了httpProxy 伺服器功能。但只有被許可的mac地址才能使用其代理服務。因此在被許可的主機(192.168.99.yyy)上安裝3proxy,設定檔3proxy.cfg編輯如下:auth iponlyallow *parent 1000 connect 192.168.99.xxx 808proxy -p3128即允許任何ip源地址,使用yyy上的代理,再通過192.168.99.xxx的808代理訪問外網。實際使用時,發現無法成功代理。yyy主機本地log顯示收到代理要求,但本地瀏覽器顯示502 bad
gateway。進一步測試,發現直接用ip地址可以開啟網頁,懷疑是dns解析問題。本地瀏覽器的代理設定是將dns請求轉送 Proxy伺服器。所以懷疑是yyy主機上的3proxy未將dns請求轉寄到xxx主機,而是試圖進行本地解析,由於yyy主機本身無法直接存取外網,當然解析失敗,返回錯誤。但在3proxy的設定檔協助中,未發現與dns轉寄直接相關的配置命令。 經反覆嘗試,在設定檔的原來4行命令後,增加了下列兩行:dnsprnserver 192.168.99.xxx 重啟3proxy後,即可以從本地瀏覽器用網域名稱正常訪問外網。具體命令含義可參考3proxy配置協助。由於無法查看xxx主機配置,無法確認是該主機被設定為dns伺服器,還是接受通過http代理服務轉寄而來的dns解析請求。