tinyproxy是一款用於POSIX操作系統的輕量級HTTP/HTTPS代理服務程序,非常小巧快速,便於部署,性能也不差,因此適合在嵌入式設備上使用,tinyproxy的倉庫和文檔鏈接分別是:
倉庫:https://github.com/tinyproxy/tinyproxy
文檔:https://tinyproxy.github.io/
tinyproxy參數不多,很容易理解,主要支持下面的功能特性:
1. 支持http/https流量代理和轉發,https只需簡單配置即可
2. 支持反向代理和負載均衡,上游服務協議可以是:http、socks4/5
3. 支持自定義添加header請求頭
4. 支持客戶端訪問控制:按照網段限制和禁止;按照用戶名和密碼做basic auth
5. 支持超時、客戶端並發限制,可以配置指定的網卡投遞流量
上面基本上就是tinyproxy的全部設置了,可以看到是非常的簡單,安裝直接克隆或者下載倉庫源碼,編譯即可,具體步驟如下:
git clone https://github.com/tinyproxy/tinyproxy.git cd tinyproxy ./autogen.sh ./configure --prefix=/usr/local/tinyproxy make make install
整個編譯安裝的過程非常快,這里安裝到/usr/local/tinyproxy目錄下,默認的安裝目錄是: /usr/local,然后編輯配置文件:/usr/local/tinyproxy/etc/tinyproxy/tinyproxy.conf,基本配置如下:
User nobody Group nobody # 綁定端口號 Port 8608 # 監聽的網絡接口 默認會監聽所有的接口 #Listen 192.168.0.1 # 設置代理流量要走的接口 Bind 192.168.0.36 # 最大連接空閑時間 Timeout 600 DefaultErrorFile "/usr/local/tinyproxy/share/tinyproxy/default.html" StatFile "/usr/local/tinyproxy/share/tinyproxy/stats.html" LogLevel Info # 最大客戶端連接數 MaxClients 100 # 訪問來源限制 Allow 127.0.0.1 Allow ::1 Allow 172.16.0.0/24 ViaProxyName "tinyproxy" # 設置允許的SSL流量端口 ConnectPort 443 ConnectPort 563
上面是一些基本的配置,另外對於日志,pid,用戶名密碼需要時單獨配置即可。
重點說一下Listen配置,這個tinyproxy服務監聽的網絡接口,也就是說通過什么ip可以訪問過來,默認是所有接口,也就是0.0.0.0,所以我這里沒有配置。但是Bind的含義是所有代理的流量應該從那個接口發送出去,最常見的就是要配置成訪問外網的接口,比如內網交換機的網段是172.16.0.0/24,這里面的機器都是無法訪問外網的,但是其中1個機器有兩個網卡,網卡192.168.0.0/24可以通過路由器訪問到外網,對於具有多個網卡的服務器,需要單獨設置Bind的接口,這樣所有內網代理的流量都會被轉發到這個接口中,其實tinyproxy很多時候就是用在這種內網需要訪問互聯網的應用場景下。
然后ConnectPort是允許SSL的流量端口,這種對https類型的代理訪問很有用,然后其他的配置都很容易理解了。
最后啟動服務:
/usr/local/tinyproxy/bin/tinyproxy -c /usr/local/tinyproxy/etc/tinyproxy/tinyproxy.conf
如果覺得路徑比較麻煩,將bin加到環境變量path下,然后將tinyproxy.conf放到/etc下即可,啟動命令會短很多: tinyproxy -c /etc/tinyproxy.conf
啟動后在其他的機器就可以配置http_proxy、https_proxy變量或者修改專門的配置來使用http代理了