コンピューター名が自動的に、誤って変更されないようにするにはどうすればよいですか?


19

2009年のiMacをMavericksにアップグレードしてから、「お使いのコンピューターの名前 "Foo"はすでにこのネットワークで使用されています」というメッセージが頻繁に表示されます。名前が「Foo(2)」に変更されました。同じエラーが発生し続けると、最後の数字は時間の経過とともに連続的に増加します。

コンピュータの名前を元に戻すのは簡単ですが、将来これが発生するのを防ぐ方法はありますか?同じ問題を抱えた古いMacbook Pro(Mountain Lionを実行)がありましたが、Mavericksを実行している私の初期の2013 MBPはこの問題に苦しんでいないようです。


それが実際に言う名前は空の文字列ですか?そうである場合、コンピューター名を変更するとどうなりますか?
0942v8653 14年

いいえ、それは私のコンピューターの名前です(がらくた、入力したテキストが削除されたことがわかります。山かっこが原因であるに違いありません)。たとえば、コンピューター名が「Foo」の場合、コンピューターの名前は「Foo(2)」になります。
クリーギー14年

空の文字列が表示されないことを明確にするために質問を編集しました。
クリーギー14年

これはあなたが持っているのと同じ問題かもしれません。また、ターミナルで実行scutil --get ComputerNamehostnameてみてください。(おそらく、IPアドレスを追跡して変更するかどうかを確認する必要があります)ルーターまたはDHCPに問題があると思います。NetBIOS名のキャッシュが長すぎる可能性があります。
0942v8653 14年

1
まだ答えがありませんか?これは、2011年後半のMacBook Pro 17 "のOS X 10.10.4でもまだ発生しています。Wi-Fiとイーサネットに同時に接続していることと関係があるかもしれませんが、OS Xが認識しない苦痛このうち、それは自分だ上。
ブレント・ファウスト

回答:


5

回避策

他のユーザーと同様に、私はこの悩みに悩まされていますが、半満足の回避策を見つけました:

my_hostname='your-hostname-here'; for key in LocalHostName ComputerName HostName ; do sudo scutil --set $key $my_hostname; done

このコマンドを実行した後、ホスト名を格納するすべての場所がこのワンライナーで同じであることを確認できます。

for key in LocalHostName ComputerName HostName ; do sudo scutil --get $key; done

MacbookがすぐにComputerNameサフィックスを付けて名前を変更し続ける場合は、をオフにして停止させることができますWake for Network Access

  • System Preferences→Energy Saver→Wake for Wi-Fi network access → Unchecked

オフになったら、上記のコマンドを使用してマシンの名前を変更して終了します。またComputerNameSystem Preferences→Sharing→Computer Nameテキストフィールド設定を使用して、強制的に戻すこともできます。

これで解決しない場合は、mDNSキャッシュをフラッシュしてみてください

# El Capitan (10.11) and later
#   check if you have dscacheutil command with: which dscacheutil
sudo dscacheutil -flushcache

# Yosemite (10.10) and ealier
#   check if you have discoveryutil command with: which discoveryutil
sudo discoveryutil mdnsflushcache
sudo discoveryutil mdnsrestartquestions
sudo discoveryutil mdnsrestartregistrations
sudo discoveryutil udnsflushcache
sudo discoveryutil udnsrestartquestions

mDNSキャッシュをフラッシュした後、上記のコマンドを使用してマシンの名前変更を再試行してください。

それでもうまくいかない場合は、mDNSResponderサービスを強制終了してみてください。

sudo killall -HUP mDNSResponder

次に、上記のscutilコマンドを使用して、コンピューター名のリセットを再試行します。

これらのいずれも効果がないことがわかった場合、報告されいる他の解決策いくつかあります。

  • ローカルネットワークへの接続が1つだけであることを確認します
  • Bonjourをオフにして再びオンにする

    # Yosemite (10.10) (and other versions with discoveryd?)
    # Check for discoveryd with:  ps auxww | grep -i discoveryd
    sudo killall discoveryd
    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    
    # Mac OS versions without discoveryd
    # Check for mDNSResponder with:  ps auxww | grep -i mDNSResponder
    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
    sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
    
  • すべてのネットワークハードウェアをシャットダウンしてリセットする

問題の議論

私の経験では、このようにホスト名を設定するか、標準を介してホスト名を設定するとSystem Preferences→Sharing→Computer Name、短期間しか持続しません。これは通常24時間未満ですが、ComputerName偶数の場合はすぐに変わり、括弧で囲まれたサフィックス番号が付きます(N)。上記のコマンドを使用した後、この番号がすぐに、(4)または(5)最近に設定されるのを観察しましたscutil --set

この動作の原因は、Mac OSで実行されているデーモンコード(N)が、ネットワーク上で同じホスト名が見つかったときに番号付きのサフィックスを追加しようとするためです。ではALL私のテストの、私が選択したホスト名がいるNEVERネットワーク上の前に使用された、さらにいた絶対にうまくとして任意のBluetoothデバイスのために使用されました。

この動作の「トリガー」の真の原因は不明であり、未検証です。つまり、オンラインでのすべての調査とテストを通じて、明らかに名前が使用されていないことと、使用されたことがないMac OSが名前をすでに使用していると判断する理由を明確に判断できませんでした。

私の理論では、何らかの形で(Linuxユーザー、またはWindowsユーザーへのネットワーキング)mDNSも呼ばれていることは、部分的に非難されるかもしれないということです。どういうわけか、MacbookまたはAppleデバイスの以前のホスト名は、またはMacbookまたはAppleデバイスによって検出および保存された何らかの形式のテーブル+ホスト名情報のどこかに保持されます。これはある種の競合状態である可能性があります。どういうわけか、エントリは重複していると見なされ、Mac OSサフィックスの名前変更動作をトリガーします。BonjourAvahiZero-confmDNSARP

Appleが提供するDNS Service Discoveryユーティリティを使用すると、ホスト名のサフィックスの番号が表示されますdns-sd

たとえば、hostnameを使用my-mbp-hostnameすると、次のエントリのように表示される場合があります

dns-sd -Z _ssh._tcp
; To direct clients to browse a different domain, substitute that domain in place of '@'
lb._dns-sd._udp                                 PTR     @

; In the list of services below, the SRV records will typically reference dot-local Multicast DNS names.
; When transferring this zone file data to your unicast DNS server, you'll need to replace those dot-local
; names with the correct fully-qualified (unicast) domain name of the target host offering the service.

_ssh._tcp                                       PTR     my-mbp-hostname\032(5)._ssh._tcp
my-mbp-hostname\032(5)._ssh._tcp                           SRV     0 0 22 my-mbp-hostname.local. ; Replace with unicast FQDN of target host
my-mbp-hostname\032(5)._ssh._tcp                           TXT     ""

[...SNIP...]
[...OTHER SSH HOSTS HERE...]
[...SNIP...]

真の原因の理論は、内部のMac OS状態と低レベルのApple OSデバッグツールにアクセスせずに実際に何が起こっているのかを見つけて観察することが難しいため、未確認です。、、、および他のMac OSサービスとの相互作用mdnsd、またはネットワーク上の他のAv​​ahiデーモンmDNSResponderとの相互作用は、mDNSResponderHelper十分に文書化されておらず、容易に観察できません。ネットワークディスカバリーのいくつかのフォームの現在の状態を見ることができますdns-sdarp -aまたは多分arp -a -n。このホスト名情報が保存される可能性のある他の理論または潜在的な場所は次のとおりです。

  • OSによってどこかで保持されたBluetoothデバイス名
  • smbd/System/Library/LaunchDaemons/com.apple.smbd.plist)によってネットワークから定期的にキャッシュされるSMB(Windowsファイル共有)情報
  • ネットワークからキャッシュされたAFP共有情報(おそらくsmbd?)
  • mDNS/ Avahiリフレクター(またはルーターまたは他のデバイスによるネットワーク上のBonjour / zero-confパケットの他のタイプの再ブロードキャスト)
    • mDNSResponderまたはmdnsd/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist)でキャッシュできます

ソリューション(プレースホルダー)

2017年10月6日の時点で、この問題の再発を防ぐためのAppleからの完全な解決策や救済策はまだありません。この問題についてAppleにバグレポートを提出することをお勧めします。Appleカスタマーサポートに問い合わせることもできます。

この厄介な問題について騒ぐ人が多いほど、Apple Product Managerの優先順位が上がり、エンジニアが修正できるようになります。

デバッグ/今後の調査ライン

このMacRumorsフォーラムディスカッションには、いくつかの有用な情報がWake for Wi-Fi Network Accessあり、デバイスWake / Sleepがこの問題と関係があるという理論を追加しています。提示されている他の理論は、複数のネットワークアダプター(例:WiFi + Thunderbolt Ethernet)、802.11 b/g/n(2.4GHz)や802.11 a/ac(5GHz)などの複数の帯域でアドバタイズされた複数のアクセスポイントを持つルーターの使用に関するものです。これらの組み合わせはあり Appleデバイスの「ゴースト」バージョンは、名前変更動作をトリガー、何とか一時的にネットワーク上に表示させます。

トリガーされるこの名前変更動作に関連して表示される有用なログ行はありませんでした/var/log/system.log。おそらくmDNSResponder、より高いログレベルに設定できます。

  • エラー-エラーメッセージ
  • 警告-クライアントが開始した操作
  • 通知-スリーププロキシ操作
  • 情報-情報メッセージ

おそらく存在しないファイルを介してこれらのデバッグレベルを設定する方法/Library/Preferences/com.apple.mDNSResponder.plistは明確ではありませんでした。使用するplistの設定例がなかったため、から追加のログ情報を取得できませんでしたmDNSResponder

WiresharkなどのツールmDNSは、ネットワーク上でブロードキャストされているパケットを、他のトラフィックの中で関連する可能性のある他のARPパケット情報とともに表示するのに役立ちます。

Mac OSでは、dscacheutilこの情報を表示するための他のツールが存在する場合があります。ホスト名の変更コードで使用されるこの情報の最終的なキャッシュを表示する方法は、十分に文書化されておらず、明確でもありません。このユーティリティをテストしたとき、正確なホスト名に対してクエリモードを使用する場合を除き、有用な出力は生成されませんでした(プライバシーのためにIPをスクラブしました)。

sudo dscacheutil -cachedump -entries host
Unable to get details from the cache node
sudo dscacheutil -cachedump
Unable to get details from the cache node
dscacheutil -cachedump
Unable to get details from the cache node
dscacheutil -cachedump -entries host
Unable to get details from the cache node

dscacheutil -q host -a name my-mbp-hostname.local
name: my-mbp-hostname.local
ipv6_address: fe80:4::1a:1234:abcd:ef01
ipv6_address: 2601:280:1b00:1234:567:abcd:ef01:1234

name: my-mbp-hostname.local
ip_address: 192.168.1.123

1
解決策ではありませんが、詳細と歴史に賛成です。
jontsai

いくつかのテストの後、いくつかの素晴らしい予備的な結果を更新したいと思います!これまでのところ、この設定を変更してから問題が再び発生することはありませんSystem Preferences→Energy Saver→Wake for Wi-Fi network access → Unchecked。システムを再起動し、しばらく実行させて完全に納得させる必要があると思います...しかし、解決策があるかもしれません!
トリニトロン

上記のWake for Wi-Fi network access設定を変更してから26日後、Macbookの名前が再び変更されたことを報告するのは残念です!動作は間違いなくBonjourとAirPlayに何らかの関係があるようです。26日間*.local、コマンドラインユーティリティからのホスト名DNSルックアップを除き、Bonjourを使用して多くのアプリケーションにアクセスしませんでした。今日、私はアプリケーションを開いAirFoilAirFoil Sattelite、すぐにホスト名がsuffixで変更されたことに気付きました(2)。これらのアプリケーションは、バグの再現テストケースを提供することができる
TrinitronX

1

同じLAN上にある2つのネットワークデバイスを使用していますか?たとえば、wifiと有線イーサネット?それらのいずれかを無効にしてみてください。以前はその問題を抱えていましたが、この方法で修正しました。


1
私はそうではありませんでしたが、私は今です。デバイスは通常、wifiまたは有線イーサネット経由で接続します。しかし今日、iTunesのwifi同期を機能させるために、iMacをwifiとイーサネット経由で接続するように変更しました。この変更は、最新のiMacの名前変更インシデントの後に行われたため、この場合の原因ではありません。
クリーギー14年

1

ここで同じ問題。しかし、foo(2)の名前はタイムマシンによって受け入れられ、同じ場所へのバックアップを実行しているようです(バックアップ全体をやり直すようではないようです)。したがって、害はありません。複数のアクティブなインターフェースに関連していると思うので、バックアップを高速化するためにイーサネットをポップアップしました。


2つのネットワークインターフェイスがあると、これが発生しやすくなるようです。インターフェースが1つあり、マシンがルーターのDHCP予約時間に近い時間スリープする場合にも発生することは明らかです。
bmike

0

これを止める良い方法はありません。Appleはホスト名のコードを置き換えて、ユーザー(人とプログラム)が常に設定されているホスト名を提示し、scutilすべての名前変更/変換を内部で行うようにしなければなりません。

少なくとも2012年以降、これがすべてのApple製品ライン(Apple TV、iPhone、Mac、おそらくApple Watchでも)で行われているため、Appleがこれを修正すべき問題と見なしていることは明らかではありません。


-2

これはおそらく、ネットワークに参加して初めてマシンをセットアップするときにアクティブになっているユーザーと関係があります。これらのマシンを構築するときは、常に同じユーザーとして実行している可能性があります

たとえば、MacBook Proなど、dave onなどのユーザーを作成すると、マシンは次のように名前を自動設定します。

コンピューター名:daveのMacBook Pro

ローカルホスト名:daves-MacBook-Pro.local

ターミナルでは、ホスト名は次のように表示されます:daves-mbp

「dave」としてログインする次のマシンもMacBook Proであると仮定すると、まったく同じ詳細が設定されます。ネットワークに接続すると、重複した名前に関するメッセージが表示されます。

私が働いている場所で、共有の名前を変更してからターミナルを開き、次のコマンドを実行します。sudo scutil –-set HostName new_hostname

(new_hostnameは選択した名前です)

その後、ターミナルを終了して再起動すると、新しいホスト名が表示されます。

ユーザーを新しいマシンに移行するときにもこの問題が発生します-移行アシスタント/タイムマシンは新しいマシンの名前を変更します

名前に関する一般的に弱い情報-http://support.apple.com/kb/PH13790


これは、1年以上前にセットアップされた2台のマシン、またはOPの場合は1台のマシンで発生します
user151019 14

-2

これは、2つの重複するDHCPサーバーを実行しているときに発生します。複数のルーター(ブリッジモード)を使用している場合、そのうちの1つだけが静的IPなしでDHCPを実行していることを確認してください。


1
ここではそうではありません。私が持っている唯一のDHCPサーバーは、Airport Extremeルーターです。
クリーギー14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.