Proxy

將一些 url 請求重定向到 LAN 代理

  • January 7, 2011

我使用具有 dnsmasq 和 iptables 的基於 linux 的路由器。在 LAN 機器上,我有 squid 代理。我想知道是否可以將某些 url 的請求轉發到代理,而其他 url 可以直接發送到 WAN。例如,對 www.onedomian.com 的請求應該由路由器轉發到代理。

您可以使用iptables字元串匹配模組基於目標 IP(Web 伺服器的 IP)和/或基於 URL(某些字元串)重定向 HTTP 請求。

例如,您可以使用規則將請求轉發到代理:

$ sudo iptables -t nat -A PREROUTING -s your_client_ip -d your_url_ip -p tcp --dport 80 -j DNAT --to-destination PROXY_IP:PROXY_PORT

另一個使用字元串匹配的例子:

$ sudo iptables -t nat -A PREROUTING -s your_client_ip -p tcp --dport 80 -m string --string "your_url" --algo bm -j DNAT --to-destination PROXY_IP:PROXY_PORT

正常情況是直接轉發請求(假設您的瀏覽器中沒有代理設置)。您只需要設置預設網關並指定所需的FORWARD規則。上面的規則假設使用透明代理。

如果要在瀏覽器中指定代理設置,可以使用瀏覽器中的例外列表來指定不傳遞給代理伺服器的 URL/IP。

引用自:https://serverfault.com/questions/219740