如何在 Node.js 中設定 Proxy 代理(Axios 與原生 Fetch)

更新於:

Axios 內建的 proxy: { host, port } 選項在發送請求至 https:// 目標時會出現錯誤,因為它不會主動發起 HTTP CONNECT 通道。為了在 Node.js 與 TypeScript 專案中順暢透過 VinaProxy 驗證型 HTTP(S) 代理進行路由,請在 Axios 內改用 HttpsProxyAgent(https-proxy-agent),或在 Node 原生 fetch() 中使用 undici.ProxyAgent 調度器。

Node.js (Axios / Undici) · HTTP Proxy Format
new HttpsProxyAgent('http://user:pass@ip:port')
獨享IPv4(資料中心)
🇺🇸 United States
有貨
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND結算
批量階梯價格
  • 1 個IP₫40,000
  • 5+ 個IP₫35,000
  • 10+ 個IP₫25,000
  • 20+ 個IP₫25,000
  • 50+ 個IP₫25,000
  • 100+ 個IP₫25,000
  • 200+ 個IP₫25,000
  • 500+ 個IP₫25,000
  • 1000+ 個IP₫22,000
  • 2000+ 個IP₫20,000
購買United States代理
獨享IPv4(資料中心)
🇸🇬 Singapore
有貨
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND結算
批量階梯價格
  • 1 個IP₫40,000
  • 5+ 個IP₫35,000
  • 10+ 個IP₫25,000
  • 20+ 個IP₫25,000
  • 50+ 個IP₫25,000
  • 100+ 個IP₫25,000
  • 200+ 個IP₫25,000
  • 500+ 個IP₫25,000
  • 1000+ 個IP₫22,000
  • 2000+ 個IP₫20,000
購買Singapore代理

Axios 與原生 Node.js fetch() 代理設定比較

兩種函式庫皆完整支援 VinaProxy 後台提供的標準 http://user:pass@ip:port URL 格式:

HTTP 客戶端NPM 套件名稱建議程式碼範例
Axiosnpm i https-proxy-agentaxios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false })
原生 fetch (Node 18+)npm i undicifetch(url, { dispatcher: new ProxyAgent('http://user:pass@ip:port') })
Gotnpm i hpagentgot(url, { agent: { https: new HttpsProxyAgent({ proxy: 'http://user:pass@ip:port' }) } })

Node.js 連線池重複利用與逾時設定最佳實踐

  • 在 Axios 設定 httpsAgent 時務必同步加上 proxy: false,避免 Axios 受到作業系統中可能衝突的 HTTP_PROXY 環境變數影響
  • 在迴圈之外為每個代理 IP 僅建立一次 HttpsProxyAgent 或 ProxyAgent 實例,以重複使用長連線(keep-alive socket)並降低系統開銷
  • 利用我們的 Proxy 格式轉換工具 直接將 VinaProxy 代理清單匯出為 JSON 陣列格式,便於程式碼直接引用

操作步驟

  1. 1

    安裝 https-proxy-agent(或 undici)

    在 Node.js 專案路徑下執行 npm install axios https-proxy-agent。

  2. 2

    建立 HttpsProxyAgent 實例

    使用你的 VinaProxy 認證資訊初始化 const agent = new HttpsProxyAgent('http://user:pass@ip:port');。

  3. 3

    將 httpsAgent 與 proxy: false 傳入 Axios

    呼叫 const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });。

  4. 4

    驗證對外出口 IP 位址

    印出 res.data,確認回應確實來自你所指定的專屬靜態代理 IP。

常見問題

為什麼 Axios 預設的 proxy: { host, port, auth } 在 HTTPS 網址會失效?

Axios 內建的 proxy 設定僅會發送純文字 HTTP 請求,而不會開啟 HTTP CONNECT TLS 加密通道。搭配 proxy: false 使用 httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') 即可徹底修復。

如何在 Node.js 18/20/22 原生 fetch() 中使用代理?

從 undici 匯入 ProxyAgent,並在 fetch() 的第二個選項物件中帶入 { dispatcher: new ProxyAgent('http://user:pass@ip:port') }。

是否能將代理清單批次轉換為 Node.js 使用的 JSON 格式?

可以。將你的 ip:port:user:pass 代理字串貼至免費的 Proxy 格式轉換工具,選擇 JSON 格式即可即時匯出。

為你的 Node.js 後端與爬蟲賦予專屬靜態 IP 效能

支援全球 7 大地區、即時發放且不限流量的專屬 IPv4 與靜態 ISP 代理服務。

購買 Node.js 代理

相關文章

依平台選擇代理
網路爬蟲專用代理:為 24/7 爬蟲打造的不限流量獨享 IPv4 與 ISP 代理池
為 Python、Playwright、Selenium 與 Scrapy 提供高速 HTTP(S) 獨享 IPv4 與靜態 ISP Proxy,享無限月度流量。
代理設定教學
如何在 Puppeteer 中設定驗證 Proxy(Node.js 指南)
在 Node.js Puppeteer 中設定帶帳密驗證的 HTTP(S) 代理:透過 --proxy-server 啟動參數結合 await page.authenticate() 達成穩定路由。
代理設定教學
如何在 Playwright 中設定 Proxy(瀏覽器全域與 Per-Context 驗證)
在 Node.js 與 Python 的 Playwright 中設定具備帳密驗證的 HTTP(S) 代理。透過 BrowserContext 在單一瀏覽器處理程序中分配多個獨立靜態 IP。
免費工具
批次 Proxy 格式轉換工具(100% 瀏覽器本地端安全處理)
100% 瀏覽器端批次代理格式轉換工具。支援在 ip:port:user:pass、user:pass@ip:port、http:// URL、SOCKS5 URI、JSON 陣列及 FoxyProxy 匯入檔之間即時轉換。
依平台選擇代理
SEO 與 SERP 排名追蹤專用代理:精準監測 7 國搜尋引擎排名
追蹤精準在地化關鍵字排名,審查地理重定向,並使用不限流量獨享 IPv4 與靜態 ISP Proxy 執行 Screaming Frog 網站爬取。
依平台選擇代理
Discord 專用代理:在獨立靜態 IP 上隔離帳號與 Token
保護多個 Discord 帳號與 Token 免受手機驗證鎖定及 Cloudflare 攔截。提供美國、新加坡與越南獨享靜態 Proxy。
IPV4 · united states
美國獨享IPv4代理:專用於大數據擷取、SEO追蹤與廣告驗證的高速美國IP
美國獨享IPv4代理:專用於資料爬取、排名追蹤、廣告驗證及亞馬遜調研。靜態獨享IP,不限流量,快速啟用。
IPV4 · singapore
新加坡獨享IPv4代理:東南亞跨境電商與海外廣告投放的高速專屬IP
新加坡獨享IPv4代理:適用於Lazada與Shopee新加坡店鋪、區域廣告帳號、廣告驗證及低延遲自動化。不限流量。