Http-Proxy
如何設置 RouterOS 在另一台機器上使用 Web 代理?
RouterOS 文件展示瞭如何通過 RouterOS 內置的 HTTP 代理透明地代理所有 Web 流量:
/ip firewall nat add in-interface=ether1 dst-port=80 protocol=tcp action=redirect to-ports=8080 chain=dstnat /ip proxy set enabled=yes port=8080
我想在另一台機器上執行一個代理,這樣我就可以利用 Squid 等中可用的更複雜的過濾規則。但是,如果我使用 NAT 將流量重定向到另一台執行 Squid 的機器,它將無法工作,因為 HTTP 請求需要重寫才能成為代理 HTTP 請求;只是重定向流量會導致來自 Squid 的錯誤請求錯誤。
可以通過以下
parent-proxy
設置完成:/ip proxy set parent-proxy=<IP of Squid machine> parent-proxy-port=3128
RouterOS 中無需設置代理。您可以通過 NAT 將所有傳出 HTTP 流量直接路由到伺服器:
ip firewall nat add in-interface=eth1 src-address=!<IP of Squid machine> dst-port=80 protocol=tcp action=dst-nat to-addresses=<IP of Squid machine> to-ports=8080
最後一個參數“src-address=!…”是必要的,以防 squid 機器通過與其他機器相同的介面進行通信。否則它會像這樣:
- 電腦發送 HTTP 請求
- RouterOS 將此數據包指定給 squid
- Squid 向網路伺服器發送 HTTP 請求
- RouterOS 再次將 squid 請求指定給 squid -> 循環