萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 網路基礎知識

Windows 設定代理伺服器完整教學:IE/Edge/Chrome/系統級/命令列/註冊表多種方式

代理伺服器可用於存取內部資源、繞過地域限制、隱藏真實 IP、內容過濾、流量審計。Windows 提供多層級設定入口,本文涵蓋 IE/Edge/Chrome 瀏覽器級、系統級 (WinHTTP/WinINET)、命令列、註冊表、群組原則、PAC 腳本等全方位配置指南。

方式一:Internet 選項 (WinINET) — 影響 IE、Edge (Legacy)、部分 Win32 應用

  1. 開啟「控制台」→「網路和 Internet」→「Internet 選項」 (或 inetcpl.cpl)。
  2. 「連線」分頁 → 「區域網路 (LAN) 設定」。
  3. 勾選「為您的區域網路使用 Proxy 伺服器」。
  4. 輸入 位址 (IP/主機名) 與 埠 (如 192.168.1.100:8080 或 proxy.company.com:3128)。
  5. 進階:可按協議分別設定 HTTP/HTTPS/FTP/SOCKS 代理及例外清單 (如 192.168.*;*.local;<local>)。
  6. 或勾選「使用自動設定腳本」填入 PAC URL (如 https://proxy.company.com/proxy.pac)。
  7. 確定 → 確定,即時生效 (無需重啟瀏覽器)。

方式二:Windows 設定 App (系統級,影響 UWP 應用、Microsoft Store、Windows Update、部分 Win32)

  1. Win+I →「網路和 Internet」→「Proxy 伺服器」。
  2. 自動 Proxy 設定:開啟「自動偵測設定」/「使用設定腳本」→ 填 PAC URL。
  3. 手動 Proxy 設定:開啟「使用 Proxy 伺服器」→ 輸入 IP:埠、例外位址 (分號分隔)。
  4. 關閉視窗即生效。

⚠️ Win10 1709+ 此處設定會同步寫入 WinINET 註冊表,雙向同步。

方式三:瀏覽器原生設定 (Chrome/Edge/Firefox 獨立於系統)

  • Chrome/Edge (Chromium):設定 → 系統 →「開啟電腦的 Proxy 設定」→ 跳轉系統設定 (同方式二);或安裝擴充功能 SwitchyOmega / Proxy SwitchySharp 管理多組代理規則 (支援 PAC、情境模式、自動切換)。
  • Firefox:設定 → 一般 → 網路設定 →「設定」→「手動設定 Proxy」/「自動 Proxy 設定 URL」→ 可勾選「對所有協議使用此 Proxy」/「不代理」。

方式四:命令列 (netsh) — 適合腳本自動化、無人值守部署

# 設定 WinHTTP Proxy (影響 Windows Update、WinRM、PowerShell Remoting、.NET HttpClient 等)
netsh winhttp set proxy proxy-server="192.168.1.100:8080" bypass-list="192.168.*;*.local;"

# 查看當前 WinHTTP Proxy
netsh winhttp show proxy

# 重置 WinHTTP Proxy (直連)
netsh winhttp reset proxy

# 設定 WinINET Proxy (同 Internet 選項,需用戶上下文)
# 註:netsh 不直接支援 WinINET 設定,需用 PowerShell 操作註冊表或呼叫 InternetSetOption API

方式五:PowerShell 註冊表直寫 (適用自動化部署、GPO 登入腳本)

# WinINET (當前用戶)
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -Name ProxyEnable -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -Name ProxyServer -Value '192.168.1.100:8080'
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -Name ProxyOverride -Value '192.168.*;*.local;'

# WinHTTP (系統級,需管理員)
$proxy = '192.168.1.100:8080'
$bypass = '192.168.*;*.local;'
netsh winhttp set proxy proxy-server=$proxy bypass-list=$bypass

方式六:群組原則 (GPO) — 企業統一部署

  1. gpmc.msc → 建立/編輯 GPO →「使用者設定」→「原則」→「Windows 設定」→「Internet Explorer 維護」→「連線」→「Proxy 設定」。
  2. 或「電腦設定」→「原則」→「管理範本」→「Windows 元件」→「資料收集和預覽版本」→「關閉 WinHTTP Proxy 自動偵測」等 (Win10/11 新增策略)。
  3. 連結到目標 OU,gpupdate /force 生效。

PAC (Proxy Auto-Config) 腳本範例

function FindProxyForURL(url, host) {
    // 內網直連
    if (isPlainHostName(host) || shExpMatch(host, "*.local") || shExpMatch(host, "192.168.*") || shExpMatch(host, "10.*") || shExpMatch(host, "172.16.*")) 
        return "DIRECT";
    // 特定域名走代理
    if (shExpMatch(host, "*.google.com") || shExpMatch(host, "*.github.com") || shExpMatch(host, "*.stackoverflow.com"))
        return "PROXY proxy.company.com:8080; PROXY backup.proxy.com:8080; DIRECT";
    // 預設直連
    return "DIRECT";
}

存為 proxy.pac 放入 Web 伺服器 (MIME: application/x-ns-proxy-autoconfig),客戶端填 https://pac.company.com/proxy.pac。

驗證與除錯

  • 瀏覽器訪問 https://ip.sb / https://api.ipify.org / https://httpbin.org/ip 確認出口 IP 是否為代理 IP。
  • curl -x https://192.168.1.100:8080 https://httpbin.org/ip 測試指定代理。
  • 檢查 netsh winhttp show proxy、reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings /v ProxyServer。
  • 日誌:代理伺服器存取日誌 (Squid: /var/log/squid/access.log、Nginx: access.log) 確認請求到達。

常見坑點

按場景選擇適當層級:臨時測試用瀏覽器擴充功能,個人長期用系統設定,企業統一用 GPO+PAC,自動化部署用 PowerShell/netsh。代理配置不再是黑盒。

copyright © 萬盛學電腦網 all rights reserved
現象原因解決
瀏覽器能上網,Windows Update/Store 失敗僅設 WinINET,未設 WinHTTP同步設定 WinHTTP (netsh winhttp set proxy)
設定後立即失效GPO/MDM/第三方安全軟體強制覆蓋檢查 RSOP、Intune/MDM 策略、安全軟體網路保護模組
PAC 腳本不生效MIME 錯誤、編碼非 UTF-8、語法錯誤、HTTPS PAC 需信任憑證瀏覽器直接開 PAC URL 驗證下載、簡化腳本排錯
SOCKS5 代理無效WinINET/WinHTTP 不原生支援 SOCKS用 Proxifier/ProxyCap/Clash Verge/NFP 進行全域 SOCKS 轉發