【親測有效】3分鐘 從零安裝高匿名http協(xié)議帶賬號密碼的代理服務(wù) 步驟超簡單

1,環(huán)境介紹:
OS:CentOS Linux release 7.6.1810 (Core)
tinyproxy 版本:Release 1.11.1? ps:1.10版本后支持設(shè)置用戶密碼,類似squid
2,安裝步驟,配置文件,啟動:
官網(wǎng)及下載地址:
https://github.com/tinyproxy/tinyproxy? ? ? ?
https://github.com/tinyproxy/tinyproxy/releases/tag/1.11.1
https://github.com/tinyproxy/tinyproxy/releases/download/1.11.1/tinyproxy-1.11.1.tar.gz
wget https://github.com/tinyproxy/tinyproxy/releases/download/1.11.1/tinyproxy-1.11.1.tar.gz
解壓,安裝:
tar xvpf tinyproxy-1.11.1.tar.gz
?
cd tinyproxy-1.11.1
?
./autogen.sh
?
./configure
make
make install
執(zhí)行后會產(chǎn)生可執(zhí)行程序:/usr/local/bin/tinyproxy 配置文件:/usr/local/etc/tinyproxy/tinyproxy.conf
默認的配置文件可以不管,我們創(chuàng)建自定義的配置文件 tinyproxy.conf,只需要簡單配置幾個核心參數(shù)即可:
mkdir /etc/tinyproxy/
vi vi /etc/tinyproxy/tinyproxy.conf
?
# 用戶和組
User nobody
Group nobody
?
# 監(jiān)聽端口
Port 8888
?
# 在多網(wǎng)卡的情況下,設(shè)置出口 IP 是否與入口 IP 相同。默認情況下是關(guān)閉的
BindSame yes
?
# 超時時間
Timeout 30
?
# 這個地方建議建立一個空文件給到報錯時讀取的文件模板,默認的模板會打印tinyproxy等信息,其他人可以通過輸入錯誤認證信息得到tinyproxy代理服務(wù)名字,版本等。
DefaultErrorFile "/usr/local/share/tinyproxy/default_nooutput.html"
#DefaultErrorFile "/usr/local/share/tinyproxy/default.html"
#該選項配置被當作統(tǒng)計主機的主機名或者IP地址:每當收到對該主機的請求時,Tinyproxy 會返回內(nèi)部統(tǒng)計信息頁面,而不會將請求轉(zhuǎn)發(fā)給該主機。此頁面的模板可以使用 StatFile 配置項進行配置。StatHost 的默認值為 tinyproxy.stats。
StatHost "127.0.0.1"
StatFile "/usr/local/share/tinyproxy/stats.html"
?
# 指定日志位置
LogFile "/var/log/tinyproxy/tinyproxy.log"
?
LogLevel Info
?
# 設(shè)置最大客戶端鏈接數(shù)
MaxClients 1024
?
#RFC 2616 要求代理將 Via 標頭添加到 HTTP 請求中,但使用真實主機名可能會引起安全問題。 如果設(shè)置了 ViaProxyName 選項,其字符串值將用作 Via 標頭中的主機名。 否則,將使用服務(wù)器的主機名。
ViaProxyName "baidu"
?
# 將此選項設(shè)置為Yes將通知Tinyproxy將包含客戶端IP地址的標頭X-Tinyproxy添加到請求中。
# 如果是yes 則在header頭中會添加原始ip,非高匿名模式,默認是 no
# 如果是yes 代理提交出去的header中會包含:"X-Tinyproxy": "127.0.0.1"
XTinyproxy no
# 該選項設(shè)置為 yes 時,Tinyproxy 不會將 Via 標頭添加到請求中。 這實際上就使 Tinyproxy 進入了隱身模式。請注意,RFC 2616 要求代理設(shè)置 Via 頭,因此啟用此選項會破壞合規(guī)性。 除非您知道自己在做什么,否則不要禁用 Via 標頭...
# 默認是 no ,遵循了RFC 2616協(xié)議,代理需要帶上頭說明自己是代理服務(wù)過來的請求
# 如果是 no 代理提交出去的header中會包含:"Via": "1.1 xxxx (tinyproxy/1.11.1)"
DisableViaHeader yes
#以上兩條修改后就能做到高匿名
?
# 權(quán)限校驗
BasicAuth xxx yyy
設(shè)置啟動腳本:
vi /usr/bin/tp
?
#!/bin/bash
if [ $# -lt 1 ]
then
? ? echo "No Args Input..."
? ? exit ;
fi
case $1 in
"start")
? ? ? ? echo " =================== 啟動 ==================="
? ? ? ? nohup tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf > /dev/null 2>&1 &
;;
"stop")
? ? ? ? echo " =================== 關(guān)閉 ==================="
? ? ? ? ps -ef|grep tinyproxy|grep -v grep|awk '{print "kill -9 "$2}'|sh
;;
"restart")
? ? ? ? echo " =================== 重啟 ==================="
? ? ? ? ps -ef|grep tinyproxy|grep -v grep|awk '{print "kill -9 "$2}'|sh
? ? ? ? nohup tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf > /dev/null 2>&1 &
;;
"status")
? ? ? ? echo " =================== 狀態(tài) ==================="
? ? ? ? ps -ef|grep tinyproxy|grep -v grep
;;
*)
? ? echo "Input Args Error..."
;;
esac
設(shè)置權(quán)限:
chmod 777 /usr/bin/tp
啟動控制:
tp start
tp stop
tp status
tp restart
查看日志:
tail -f /var/log/tinyproxy/tinyproxy.log
3,正式測試:
在另一臺公網(wǎng)ip機器上用curl測試,成功沒有顯示任何代理信息,真正做到了http協(xié)議的 高匿名+賬號密碼驗證 代理服務(wù):
curl -x http://xxx:yyy@xxx.xxx.xxx.xxx:8888 http://httpbin.org/get?show_env=1
?
?
{
? "args": {
? ? "show_env": "1"
? },?
? "headers": {
? ? "Accept": "*/*",?
? ? "Host": "httpbin.org",?
? ? "User-Agent": "curl/7.29.0",?
? ? "X-Amzn-Trace-Id": "Root=2-6361231232a-2a123d67c1231231231644946e55a",?
? ? "X-Forwarded-For": "xxx.xxx.xxx.xxx",?
? ? "X-Forwarded-Port": "80",?
? ? "X-Forwarded-Proto": "http"
? },?
? "origin": "xxx.xxx.xxx.xxx",?
? "url": "http://httpbin.org/get?show_env=1"
}
4,參考資料:
Tinyproxy安裝與配置(ip代理) - 林先生
http://httpbin.org/get?show_env=1
TinyProxy 使用幫助 - 簡書
https://github.com/tinyproxy/tinyproxy