해결 방법
다른 사용자와 마찬가지로이 성가심에 시달리고 있지만 반 만족스러운 해결 방법을 찾았습니다.
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
명령을 사용하여 컴퓨터 이름을 다시 설정하십시오 .
이 중 어느 것도 좋은 일을하지 못한다면 다음과 같은 다른 해결책 이 있습니다.
문제 토론
내 경험상 호스트 이름을 이런 식으로 설정하거나 표준을 통해 설정하면 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 접미사 이름 바꾸기 동작을 트리거합니다.Bonjour
Avahi
Zero-conf
mDNS
ARP
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-sd
및 arp -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