錯誤訊息
Mac 上的「curl: (6) Could not resolve host」
curl 結束代碼 6 表示 curl 無法取得該主機名稱的位址。curl 說明文件寫道:「The given remote host was not resolved.」
症狀
- 終端機顯示
curl: (6) Could not resolve host: example.com。 - 使用 curl 的腳本和安裝程式以結束代碼 6 停止。
- 同一個網址在瀏覽器中可以打開,或者在瀏覽器中也一樣失敗。
可能原因
- 輸入錯誤或主機為空。腳本中的變數可能是空的,導致 curl 拿到錯誤的名稱。
- 沒有連線或沒有 DNS。Mac 無法連到 DNS 伺服器。
- 使用自己 DNS 的 VPN。公司內部名稱只有在 VPN 開啟時才能解析。
- curl 沒有使用代理伺服器。在只允許透過代理伺服器上網的網路上,curl 需要代理伺服器設定,這樣它才會讓代理伺服器解析名稱。
如何檢查
印出完整的指令,確認主機名稱正確。
透過 macOS 解析器查詢名稱。
dscacheutil -q host -a name example.com直接詢問公共 DNS 伺服器。如果這裡有回應、上一步卻沒有,問題就在你的 DNS 設定。
dig +short example.com @1.1.1.1顯示 curl 會讀取的代理伺服器環境變數。
env | grep -i proxy用詳細模式執行 curl,前幾行會顯示查詢過程。
curl -v https://example.com
如何修正
如果 macOS 的查詢也失敗,請修正 DNS。請參閱Mac 上的 DNS 無法解析。
如果網路需要代理伺服器,請為 curl 設定。
export https_proxy=http://proxy.example.com:8080如果是公司內部名稱,請先連上 VPN。
清除 DNS 快取,然後再試一次。請參閱清除 Mac 上的 DNS 快取。
使用 Kilobat
Kilobat 的連線診斷會逐層測試名稱:網路、代理伺服器、DNS、規則、IPv4、IPv6、TLS 和伺服器,並指出是哪一層失敗。
kilobat why example.com若要使用某個執行中處理程序的代理伺服器變數,請加上
--app並指定它的名稱。kilobat why https://example.com --app process:curl這些 Kilobat 檢查都是免費的。AI 代理程式可透過 MCP 以
diagnose_connection和diagnose_network執行。請參閱找出某個網站或 API 連不上的原因。
常見問題
為什麼瀏覽器可以用,curl 卻不行?
瀏覽器可以使用系統代理伺服器或它自己的 DNS,curl 則讀取 https_proxy 等代理伺服器環境變數。請參閱代理伺服器設定讓 Mac 上的 App 無法連線。
資料來源
- curl:libcurl error codes
- curl(1) 的 EXIT CODES,macOS 27.2 內建的 man 頁面
- dscacheutil(1) 與 dig(1),macOS 27.2 內建的 man 頁面
資料來源檢查日期:2026年10月29日。man 頁面為 macOS 內建版本;在終端機中用 man <name> 開啟。