IIS 連接埠變更需要透過 IIS 管理器(而非設定檔)編輯綁定,然後驗證防火牆規則、連接埠衝突和應用程式層級 URL 處理;變更持續存在並即時套用。
在 IIS 管理員中尋找並編輯網站綁定
您無法透過直接編輯設定檔來變更連接埠 - IIS 將綁定儲存在其設定係統中,規範的方法是透過IIS Manager 。啟動它(運行inetmgr ),展開伺服器節點,按一下Sites ,右鍵單擊您的網站→ Edit Bindings… 。
在那裡您將看到一個或多個條目,例如http *:80: 。選擇該行並按一下Edit 。將Port欄位變更為您所需的號碼(例如8080 )。確保Type保持http (如果切換到 TLS,則為https )。
如果新連接埠已在使用中(例如,另一個應用程式綁定到:8080 ),IIS 將拒絕儲存並顯示錯誤,例如Cannot add duplicate collection entry of type 'binding'
您無需先停止網站 - 更改一旦儲存就會立即生效
綁定編輯在 IIS 重新啟動後仍然存在,因為它們被寫入%windir%\System32\inetsrv\config\applicationHost.config
檢查 Windows 防火牆和連接埠可用性
變更綁定不會自動在 Windows 防火牆中開啟連接埠。如果外部用戶端在變更後無法存取該站點,請驗證該連接埠是否被允許:
執行netsh http show urlacl查看http:// :8080/ (或您的連接埠)是否有 ACL — 缺少意味著非管理員使用者的存取可能會被拒絕
使用netsh http add urlacl url=http:// :8080/ user=Everyone新增(根據需要調整user )
在進階安全性 Windows 防火牆中,確保新連接埠上存在 TCP 入站規則 — 或暫時停用防火牆進行測試
確認沒有其他東西在監聽: netstat -ano | findstr :8080應該回傳沒有衝突的進程
處理 HTTP 到 HTTPS 重定向或反向代理場景
如果您的應用程式依賴Request.Url.Port 、 X-Forwarded-Port或產生絕對 URL,則變更連接埠可能會中斷連結或重定向 — 尤其是在負載平衡器或反向代理後面。
IIS 不會自動更新 301/302 回應中的Location標頭 - 這些標頭是由您的應用程式邏輯或URL Rewrite等模組產生的
如果使用ARR (應用程式請求路由),請檢查Server Variables部分:可能需要在出站規則中手動設定HTTP_X_FORWARDED_PORT
IIS 中託管的 ASP.NET Core 應用程式通常會忽略綁定連接埠並預設為5000或5001 ,除非配置了UseIISIntegration()和正確的ForwardedHeaders中介軟體
端對端驗證更改是否有效
不要認為「保存刷新」就足夠了。多角度測試:
存取http://localhost:8080 — 確認本地綁定和進程級可達性
試試http://[your-machine-name]:8080 — 驗證 DNS/名稱解析和網路堆疊行為
從另一台機器: telnet your-server-ip 8080 — 隔離網路/防火牆問題
檢查回應標頭: curl -I http://localhost:8080應該回傳HTTP/1.1 200 OK ,而不是Connection refused或逾時
最常見的疏忽不是綁定本身 - 它忘記了在瀏覽器中輸入的http://example.com仍然意味著端口 80,因此用戶不會訪問您的新端口,除非您更新 DNS、使用自定義主機標頭或部署從 :80 到 :8080 的重定向。
以上是如何更改IIS網站的默認80端口?的詳細內容。更多資訊請關注PHP中文網其他相關文章!