> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 為 XBOX 開發套件設定易記的主機名稱

> 在 XBOX Manager 或 DevHome 中為 XBOX 開發套件設定易記的主機名稱,讓工具在主機的 IP 位址於網路上變更時仍能正常運作。

為開發套件設定易記的**主機名稱**,讓工具可以透過名稱而非 IP 來定址。主機名稱不會因為主機的 IP 位址變更而失效。

<Note>
  工具大多可以互換使用主機名稱與主機 IP,但如果開發套件的 IP 會定期更新,建議使用主機名稱。
</Note>

## 指定主機名稱

可使用以下任一方式:

* **XBOX Manager**:**Add Console** → 選取主機 → **Settings** 索引標籤 → 變更主機名稱 → **Save Settings** → 選取**是**以重新啟動。
* **在開發套件上**:**設定** → **系統** → 設定**名稱**。
* **XBOX Device Portal**:**Settings** → **Device name**。
* 從 GDK 命令提示字元使用 **`xbconfig`**:
  ```text theme={null}
  xbconfig HostName=name
  ```

<Warning>
  系統不會強制名稱唯一——請避免重複,例如可以從開發 PC 的名稱衍生主機名稱。
</Warning>

## 使用主機名稱連線

在 **Windows 7** 上,請以系統管理員命令提示字元執行以下命令一次,確保主機名稱解析可靠運作:

```text theme={null}
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters /v MaxNegativeCacheTTL /d 0 /t REG_DWORD
```

Windows 8 或更新版本不需要此步驟。

之後,任何可使用主機 IP 的地方都能使用主機名稱。範例:

```text theme={null}
xbconnect name
xbtool /x:name
```

### 讓主機名稱在復原/原廠重設後保留

原廠重設會清除主機名稱,導致復原程序的後續階段中斷。可透過以下方式避免:

* 在復原過程中略過原廠重設。
* 使用 `/factoryreset:savesettings` 選項(復原時這是預設值;在自訂指令碼中請明確加入)。它會保留 `Hostname` 與 `Sandbox ID` 等設定。
* 在必須原廠重設時,透過設定 UI 手動執行 `xbcleanup /F`。如果你復原到較舊的組建,程序會強制重設。

需要重設時,請一律使用 `/x:` 傳入主機 IP。

### 取得 IP 並重新設定主機名稱

1. 在復原或重設之前,依主機名稱取得 IP:
   ```text theme={null}
   xbconnect.exe /q /b /t <hostname>
   ```
2. 使用取得的 IP 執行復原或原廠重設。
3. 還原主機名稱:
   ```text theme={null}
   xbconfig HostName=<HostName>
   xbreboot
   ```

#### 完整指令碼範例

將目前的 IP 載入環境變數、執行復原,然後還原主機名稱(主機名稱為「Xb1」):

```cmd theme={null}
xbconnect /Q /B /T Xb1>%TEMP%\console_Xb1_last_tools_address.txt
set CONSOLE_Xb1_LAST_TOOLS_ADDRESS=
FOR /F %%i IN (%TEMP%\console_Xb1_last_tools_address.txt) DO SET CONSOLE_Xb1_LAST_TOOLS_ADDRESS=%%i
del %TEMP%\console_Xb1_last_tools_address.txt
REM Recover 'Xb1' by using its last known raw tools address.
XboxOneUpdate.bat /x:%CONSOLE_Xb1_LAST_TOOLS_ADDRESS%
REM Restore the hostname for 'Xb1', and restart for it to take effect.
xbconfig /x:%CONSOLE_Xb1_LAST_TOOLS_ADDRESS% HostName=Xb1
xbreboot /x:%CONSOLE_Xb1_LAST_TOOLS_ADDRESS%
```

## 網路考量

透過主機名稱連線通常要求開發 PC 與主機位於**相同的 IP 子網路**。如果你的 DNS 伺服器不接受未經驗證裝置的更新,主機名稱解析會回退到 **LLMNR**,而 LLMNR 只能在相同子網路內運作。

實務上:對於與主機在同一子網路的個別開發人員、美術人員與製作人而言,主機名稱運作良好;但在跨子網路的實驗室環境中可能無法運作。


## Related topics

- [XBOX GDK 主機開發的 NDA 主題索引](/zh-TW/nda/nda-overview.md)
- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [主機上的開發人員首頁 (Dev Home)](/zh-TW/tools/tools-console/devhome/devhome.md)
- [使用 GDKX 建置並執行你的第一個主機遊戲](/zh-TW/home/build-first-title/first-console-title-walkthrough.md)
- [重新開機 (xbreboot.exe)](/zh-TW/tools/tools-console/commandlinetools/xbreboot.md)
