Tinyproxy是一個輕量級的用於POSIX操做系統的http/https代理守護進程。在設計之初就遵循着更快而且更小的原則。在相關的運用案例中,它是一種理想的解決方案,例如在一個須要所有HTTP代理特性的嵌入式部署的案例中。然而,對於須要更大的代理案例來講,它是不可用的。linux
Tinyproxy自己是小巧的,幾乎不須要佔用系統資源。安裝後,內存佔用一般在2M左右,CPU負載隨同步鏈接的數量線性增長(取決於鏈接的速度)。所以,Tinyproxy能夠在一臺舊機器上運行,也能夠在網絡設備上運行,好比基於linux的寬帶路由器,而不會對性能產生任何明顯的影響。vim
安裝環境:阿里雲CentOS7 香港服務器瀏覽器
1. 安裝 TinyProxy安全
在Red Hat Enterprise Linux或其衍生產品(如CentOS)上,能夠經過運行yum install tinyproxy從EPEL存儲庫安裝Tinyproxy。服務器
yum -y install tinyproxy
2. 配置 TinyProxy網絡
vim /etc/tinyproxy/tinyproxy.conf
修改 Port 端口,默認爲 8888curl
Port 12801tcp
註釋掉 Allow,表示容許全部人訪問代理ide
#Allow 127.0.0.1性能
隱藏掉Via請求頭部,去掉下面的註釋
DisableViaHeader Yes
更多配置項,下面是列舉一些配置文件默認的,不須要配置:
PidFile "/var/run/tinyproxy/tinyproxy.pid"
LogFile "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
MaxClients 100
MinSpareServers 5
MaxSpareServers 20
StartServers 10
3. 啓動 TinyProxy
systemctl start tinyproxy.service
更多命令以下:
4. 關閉防火牆或開放端口訪問
方式1:關閉防火牆
/etc/init.d/iptables stop
方式2:開放端口訪問
iptables -A INPUT -p tcp --dport 12801 -j ACCEPT
重啓防火牆
/etc/init.d/iptables restart
注意:若採用的阿里雲、騰訊雲、AWS等雲服務器,記得要在安全策略裏開放端口號
5. 驗證生效
1)命令行測試驗證(服務器本地測試)
使用TinyProxy拉取google.com的頁面信息:
curl -x 127.0.0.1:12801 google.com
能夠看到成功拉取了谷歌的頁面信息,說明咱們的配置是成功。
2)Firefox測試(本機測試)
打開火狐瀏覽器,選擇:選項-網絡代理-設置,進入配置界面,根據下圖進行配置:
配置完成後,咱們使用百度搜索IP,搜索結果以下:
IP地址是咱們服務器的地址,說明代理正常訪問。然而,若是咱們訪問谷歌,會獲得以下頁面:
咱們沒法訪問谷歌,不但如此,其餘相似的網站咱們也是沒法訪問的。這是爲何?首先,咱們看下面的圖,當咱們想要訪問外網的時候,這個請求數據包必然會通過防火牆的檢查:
如今咱們使用代理,可是依然須要通過防火牆的檢查:
因爲客戶端與TinyProxy之間的請求數據是沒有加密的,因此咱們沒法經過檢查。
有人可能疑問,HTTPS是加密的請求,那麼爲何不能繞過防火牆呢?
這是由於客戶端在進行加密通訊之前,須要進行鏈接握手。在鏈接握手時,身份認證證書信息(即服務器的公鑰)是明文傳輸的,牆此時就會阻斷特定證書的加密鏈接。
Tinyproxy是一個輕量級的用於POSIX操做系統的http/https代理守護進程。在設計之初就遵循着更快而且更小的原則。在相關的運用案例中,它是一種理想的解決方案,例如在一個須要所有HTTP代理特性的嵌入式部署的案例中。然而,對於須要更大的代理案例來講,它是不可用的。