Fragments of verbose memory

冗長な記憶の断片 - Web技術のメモをほぼ毎日更新

Jan 10, 2025 - 日記

Mac ホスト名の設定と確認方法: HostName/LocalHostName/ComputerNameの違い

mac-hostnames cover image

奇妙なことにMacOSには3種類のホスト名が存在します。それぞれ役割や設定方法が異なるため、混乱することもあるでしょう。 このブログでは、MacOSにおける3種類のホスト名の違いと設定方法、そして hostname コマンドによる一時的な変更手順について解説します。

結論: ホスト名を変更するときには HostNameComputerNameLocalHostNameすべて変更しましょう。

クイックリファレンス

項目確認コマンド設定コマンド
HostNamescutil --get HostNamesudo scutil --set HostName 新しい名前
LocalHostNamescutil --get LocalHostNamesudo scutil --set LocalHostName 新しい名前
ComputerNamescutil --get ComputerNamesudo scutil --set ComputerName 新しい名前
現在のホスト名hostnamesudo hostname 新しい名前(一時的)

すべて一度に変更する例:

1
2
3
sudo scutil --set HostName mynewmac
sudo scutil --set LocalHostName mynewmac
sudo scutil --set ComputerName mynewmac

1. HostName

概要

HostName は主にDNSやリモートアクセスの際に使用される正式なホスト名です。Macが外部ネットワークやインターネット上で一意に識別されるために用いられ、SSHやVPNなどのリモート接続でも参照されます。

用途

  • SSHやVPNなどのリモート接続時の識別。
  • 外部ネットワーク上でMacを特定する際の名前。

設定方法(永続的)

以下のコマンドで、再起動後も保持される形で HostName を設定します。

1
sudo scutil --set HostName 新しいホスト名

確認方法

現在の HostName は以下のコマンドで確認できます:

1
scutil --get HostName

また、 hostname コマンドもデフォルトで HostName を表示します。

1
hostname

2. LocalHostName

概要

LocalHostName はBonjour(Appleのゼロコンフィギュレーションネットワーク技術)で使用されるホスト名です。ローカルネットワーク内でのサービス検出に役立ち、通常は xxxx.local の形式で表されます。 デフォルトでは ComputerName を元に自動生成されますが、ハイフン( - )以外の特殊文字やスペースは使えない点に注意が必要です。

用途

  • Bonjourを使ったローカルネットワークでの機器発見・サービス公開。
  • ファイル共有やプリンター共有などの際に識別しやすくするための名前。

設定方法(永続的)

1
sudo scutil --set LocalHostName 新しいローカルホスト名

確認方法

現在の LocalHostName は以下のコマンドで確認できます:

1
scutil --get LocalHostName

ローカルネットワーク上で見える名前は xxxx.local のように「 .local 」が自動的に付加されます。

3. ComputerName

概要

ComputerName はシステム設定の「コンピュータ名」やFinderなど、主にユーザーインターフェース上で表示される名称です。ネットワーク上に表示されるラベルにも使われるため、他のユーザーが同じネットワークにいる場合は、ここで設定した名前でMacを認識してもらうことができます。

用途

  • ネットワーク経由での共有やAirDropなど、ユーザーインターフェースでの表示。
  • システム環境設定で視覚的にわかりやすい名前を示す。

設定方法

  1. システム設定から変更する場合

    1. Appleメニュー > [システム設定] を開きます。
    2. [一般] > [情報] をクリック。
    3. 「名前」の横にあるフィールドを編集して新しいコンピュータ名を入力します。
  2. ターミナルから変更する場合

1
sudo scutil --set ComputerName 新しいコンピュータ名

確認方法

現在の ComputerName は以下のコマンドで確認します:

1
scutil --get ComputerName

hostname コマンドでの一時的な変更

hostname コマンドを使って、ホスト名を一時的に変更することも可能です。ただし、再起動すると元のホスト名に戻るため、あくまでも緊急時やテストなどの一時的な用途に限られます。

1
sudo hostname 新しいホスト名

このコマンドを実行後、別のターミナルなどで hostname を実行すると変更が反映されています。しかし、再起動すると元の値に戻る点に注意してください。

まとめ:3種類のホスト名の違い

設定項目確認コマンド主な用途hostname コマンドで表示されるか
HostNamescutil --get HostNameDNS名やリモートアクセスなど、外部ネットワークでの識別表示される
LocalHostNamescutil --get LocalHostNameBonjourを利用したローカルネットワークでの識別表示されない
ComputerNamescutil --get ComputerNameFinderや共有設定など、ユーザーインターフェース用表示されない
  • HostName を設定しない場合、macOS が自動的に LocalHostNameComputerName を使う場合があります。
  • ネットワーク環境によっては、これら3種類を明示的に設定しておくとトラブルを回避しやすくなります。

よくある質問

Mac ホスト名の確認方法は?

以下のコマンドで各ホスト名を確認できます:

1
2
3
4
5
6
7
# 現在のホスト名(HostName)
hostname

# 詳細確認
scutil --get HostName
scutil --get LocalHostName
scutil --get ComputerName

Mac ホスト名変更は再起動が必要?

scutil --setコマンドで変更した場合、再起動は不要です。設定は即座に反映されます。

ただし、一部のアプリケーションやサービスは再起動するまで古いホスト名を使用し続ける場合があります。

hostname コマンドで変更が反映されない場合

hostnameコマンドでの変更は一時的です。永続的に変更するにはscutilを使用してください:

1
2
3
4
5
# 一時的(再起動で元に戻る)
sudo hostname newhostname

# 永続的(推奨)
sudo scutil --set HostName newhostname

LocalHostName に使える文字は?

  • 英数字(a-z, A-Z, 0-9)
  • ハイフン(-

スペースや特殊文字は使用できません。自動的に置換されます。

例:

  • My MacMy-Mac
  • Mac's ComputerMacs-Computer

ホスト名が勝手に変わる場合

複数のMacが同じネットワークにあり、同じLocalHostNameを持つ場合、自動的に番号が付加されます(例:macbook.localmacbook-2.local)。

解決方法: 各Macに一意のLocalHostNameを設定してください。

まとめ

macOSには3種類のホスト名が存在し、それぞれ異なる役割を持ちます:

  1. HostName: SSH/リモート接続で使用(外部ネットワーク)
  2. LocalHostName: Bonjourで使用(ローカルネットワーク、.local
  3. ComputerName: FinderやUI表示で使用

ベストプラクティス:

  • ホスト名変更時は3つすべてを同じ名前に設定
  • scutilコマンドで永続的に変更
  • ネットワークトラブル回避のため、明示的に設定を推奨

これらを正しく設定することで、ネットワークやリモート接続時のトラブルを回避できます。

参考リンク