Proxy
通過 PAC/WPAD 文件從代理中排除具有非標準埠的 URL
我正在執行一個 Squid 代理,並希望排除通過非標準埠訪問的某個網址通過代理,而不是在其中的 ACL 中打開該埠
squid.conf
(似乎它是一個特定的案例)。在我的情況下,有問題的埠 TCP 2222 (DirectAdmin) 通過 http:// 和 https://。我不確定在不打開埠本身的情況下是否真的可以做到這一點,但我確實找到了幾篇關於使用 PAC/WPAD 繞過具有非標準埠的 URL 的文章。我嘗試瞭如下所示的規則集,它為 TLD 設置萬用字元,為非標準埠 URL 設置特定規則。
if (shExpMatch(host, "*.somedomain.com") || shExpMatch(url, "http://example.somedomain.com:2222/*") || shExpMatch(url, "https://example.somedomain.com:2222/*")) return "DIRECT";
使用
pactester
,我從規則測試中得到了 DIRECT 的正確響應pactester -p /path/to/wpad.dat -u http://example.somedomain.com DIRECT pactester -p /path/to/wpad.dat -u http://example.somedomain.com:2222 DIRECT pactester -p /path/to/wpad.dat -u https://example.somedomain.com:2222 DIRECT
但是,當我在網路瀏覽器中收到“代理拒絕連接”等資訊時,請求似乎仍在通過代理髮送。埠本身沒有被阻塞,我可以遠端登錄到它,但是 Sqiud ACL 沒有允許的埠。雖然這是我試圖避免做的事情,但 DIRECT 響應肯定意味著繞過?
這實際上是否可以使用具有非標準埠的 PAC/WPAD 來實現,或者它們是繞過並直接發送這種特定情況的替代方法?
原始配置
if (shExpMatch(host, "*.somedomain.co.uk") || shExpMatch(url, "http://example.somedomain.com:2222/*") || shExpMatch(url, "https://example.somedomain.com:2222/*")) return "DIRECT";
你確定這不應該是
if (shExpMatch(host, "*.somedomain.co.uk") || shExpMatch(url, "http://example.somedomain.co.uk:2222/*") || shExpMatch(url, "https://example.somedomain.co.uk:2222/*")) return "DIRECT";
您可能正在嘗試訪問example.somedomain.co.uk,但您的條件是針對example.somedomain.com編寫的,所以它一直在訪問代理?