컴퓨터 이름이 자동으로 잘못 변경되지 않도록하려면 어떻게합니까? 따라 끝의 숫자가 계속 증가합니다. 컴퓨터

2009 iMac을 Mavericks로 업그레이드 한 이후로이 컴퓨터에서 ‘컴퓨터 이름’Foo ‘가 이미 사용 중이라는 메시지가 종종 나타납니다. 이름이 “Foo (2)”로 변경되었습니다. ‘ 동일한 오류가 계속 발생하면 시간이 지남에 따라 끝의 숫자가 계속 증가합니다.

컴퓨터 이름을 바꾸는 데 사소한 일이지만 앞으로 이런 일이 발생하지 않도록 할 수있는 방법이 있습니까? 나는 같은 문제가있는 오래된 Macbook Pro (Running Mountain Lion)를 가지고 있었지만 Mavericks를 실행하는 2013 년 초 MBP는이 문제로 고통받지 않는 것 같습니다.



답변

해결 방법

다른 사용자와 마찬가지로이 성가심에 시달리고 있지만 반 만족스러운 해결 방법을 찾았습니다.

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

일단 꺼지면 위의 명령을 사용하여 컴퓨터 이름을 바꾸십시오. 텍스트 필드 환경 설정 ComputerName을 사용하여 되돌릴 수도 있습니다 System 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명령을 사용하여 컴퓨터 이름을 다시 설정하십시오 .

이 중 어느 것도 좋은 일을하지 못한다면 다음과 같은 다른 해결책 이 있습니다.

  • 로컬 네트워크에 하나만 연결되어 있는지 확인하십시오
  • 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)동일한 호스트 이름이 네트워크에서 발견 될 때마다 번호가 붙은 접미사를 추가하려고하기 때문입니다. 에서 모든 내 테스트, 내가 선택한 호스트 이름은 한 결코 네트워크에 이전에 사용되지 및 추가 한 결코 어떤 Bluetooth 장치를 사용하지뿐만 아니라되었다.

이 동작의 “트리거”의 실제 원인은 알려져 있지 않으며 확인되지 않았습니다. 내 모든 연구를 통해 온라인 및 Mac OS는 명확 때 이름이 이미 사용중인 것을 결정하는 이유는 명확하게 판단 할 수 없었다 테스트 : 그 말을하는 것입니다 NOT 왔다 결코.

저의 이론은 ( Linux 사용자 또는 Windows 사용자에게 네트워킹)mDNS 이라고도하는 일부는 책임이 있습니다. 어쨌든, Macbook 또는 Apple 장치의 이전 호스트 이름은 어딘가 또는 Macbook 또는 Apple 장치에 의해 검색 및 저장되는 일종의 테이블 + 호스트 이름 정보 형식으로 유지 됩니다. 이것은 일종의 경쟁 조건이 될 수 있습니다. 어떻게해서 항목이 중복 된 것으로 보이며 Mac OS 접미사 이름 바꾸기 동작을 트리거합니다.BonjourAvahiZero-confmDNSARP

Apple에서 제공 한 DNS 서비스 검색 유틸리티를 사용하면 접미사가 붙은 호스트 이름이 표시됩니다 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 디버깅 도구에 액세스하지 않고 실제로 무슨 일이 일어나고 있는지 관찰하기가 어렵 기 때문에 확인되지 않았습니다. 사이의 상호 작용 mdnsd, mDNSResponder그리고 mDNSResponderHelper다른 맥 OS 서비스 나 네트워크에서 심지어는 다른를 Avahi 데몬과는 잘 문서화 또는 쉽게 관찰되지 않는다. 일부 형태의 네트워크 검색의 현재 상태는 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 제품 관리자의 우선 순위가 더 빨라져 엔지니어가 문제를 해결할 수 있습니다.

디버깅 / 향후 조사 라인

MacRumors 포럼 토론 에는 유용한 정보 Wake for Wi-Fi Network Access와 장치 Wake / Sleep이이 문제와 관련이 있다는 이론을 추가하는 것이 포함되어 있습니다. 제시된 다른 이론은 여러 개의 네트워크 어댑터 (예 : WiFi + Thunderbolt 이더넷), 여러 개의 액세스 포인트가있는 라우터 (예 : 켜기 802.11 b/g/n(2.4GHz) 또는 802.11 a/ac(5GHz))와 관련이 있습니다. 이 조합은 이름 변경 동작을 트리거, 어떻게 든 일시적으로 네트워크에 표시하기 위해 애플 장치의 “유령”버전 원인이됩니다.

가 없었다 유용한 로그 라인 에서 /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

답변

동일한 LAN에있는 두 개의 네트워크 장치를 사용하고 있습니까? 예를 들어, 와이파 이와 유선 이더넷? 그들 중 하나를 비활성화하십시오. 나는 그 문제를 가지고 있었고 이런 식으로 고쳤다.


답변

여기에도 같은 문제가 있습니다. 그러나 foo (2) 이름은 타임 머신에서 허용되는 것으로 보이며 여전히 동일한 위치로 백업을 수행합니다 (전체 백업을 다시 실행하지 않는 것으로 계속됩니다). 따라서 아무런 파울도 없습니다. 여러 활성 인터페이스와 관련이 있다고 생각하고 백업 속도를 높이기 위해 이더넷을 팝업했습니다.


답변

이것을 막을 수있는 좋은 방법은 없습니다. Apple은 호스트 이름에 대한 코드를 교체하여 사용자 (사람 및 프로그램)가 항상 설정 한 호스트 이름을 표시하고 scutil모든 이름 변경 / 번역을 수행하도록해야합니다.

적어도 2012 년 이후 모든 Apple 제품군 (Apple TV, iPhone, Mac 및 아마도 Apple Watch까지)에서이 문제가 발생했기 때문에 Apple이이 문제를 해결해야 할 문제라고 생각하는 것은 분명하지 않습니다.


답변

네트워크에 연결하고 처음으로 기기를 설정할 때 활성 상태 인 사용자와 관련이있을 수 있습니다. 이러한 머신을 구축 할 때 항상 동일한 사용자로 작업하는 것이 가능합니다

dave와 같은 사용자 (예 : MacBook Pro)를 생성하면 시스템이 다음과 같이 이름을 자동 구성합니다.

컴퓨터 이름 : dave ‘s MacBook Pro

로컬 호스트 이름 : daves-MacBook-Pro.local

터미널에서 호스트 이름은 다음과 같이 표시됩니다. daves-mbp

다음에 ‘dave’로 로그인 한 다음 컴퓨터가 MacBook Pro라고 가정하면 네트워크에 연결하면 중복 된 이름에 대한 메시지가 나타납니다.

작업 할 때 공유에서 이름을 변경 한 다음 터미널을 열고 다음 명령을 실행합니다. sudo scutil –-set HostName new_hostname

(여기서 new_hostname은 선택한 이름입니다)

그런 다음 터미널을 종료했다가 다시 시작하면 새 호스트 이름이 표시됩니다.

사용자를 새 컴퓨터로 마이그레이션 할 때도이 문제가 발생합니다. 마이그레이션 지원 / Time Machine이 새 컴퓨터의 이름을 바꿉니다.

일반적으로 이름에 대한 약한 정보-http: //support.apple.com/kb/PH13790


답변

두 개의 겹치는 DHCP 서버를 실행할 때 발생합니다. 둘 이상의 라우터 (브리지 모드)를 사용하는 경우 고정 IP없이 DHCP 중 하나만 DHCP를 실행하고 있는지 확인하십시오.