Linux가 할 수 없는데 왜 Windows 시스템이 로컬 이름을 확인할 수 있습니까?


18

Windows 및 Linux 시스템이 D-Link DIR-825 라우터에 연결된 소규모 네트워크가 있습니다.

네트워크의 Windows 시스템은 이름으로 다른 모든 시스템에 도달 할 수 있지만 Linux 시스템은 IP 주소로 다른 시스템에 도달 할 수 있습니다.

라우터 웹 관리 인터페이스의 DHCP 클라이언트 상태 목록에서 이름과 DHCP 할당 주소가 나열된 모든 시스템을 볼 수 있습니다.

Windows가 Linux 시스템을 찾는 데 아무런 문제가 없는데 Linux 시스템이 이름으로 다른 시스템을 찾을 수없는 이유는 무엇입니까?


2
이름 확인은 어떻게 이루어 집니까? DNS? 검색 접미사가 구성되어 있습니까?
Shane Madden

모든 컴퓨터는 DHCP를 사용하고 있으며 D-Link 라우터에 연결되어있어 스스로 등록하는 것처럼 보이고 Windows가 모든 컴퓨터를 찾기에 충분합니다. 그러나 리눅스 머신에는 라우터 이외의 로컬 DNS 서버가 실제로 필요합니까?
Per Salmi

특정 라우터는 확실하지 않지만 대부분의 소비자 라우터는 DHCP 클라이언트를 내부 DNS 서비스에 통합하지 않습니다. 조의 대답은 아마도 당신의 범인 일 것입니다.
Shane Madden

그러면 Linux 시스템은 LLMNR 메시지에 응답하지만 다른 시스템을 찾기 위해 자체적으로 사용하지 않습니까?
Per Salmi

답변:


32

저는 네트워크 전문가가 아니며이 주제에 대한 답을 찾기 위해 LOT을 연구하고 있습니다. 나의 현재 발견은 :

  • Windows는 NetBIOS 이름을 사용하며 이러한 프로토콜은 브로드 캐스트 이름이므로 중앙 서버없이 서로를 찾을 수 있습니다.

  • 최신 배포판의 Linux 시스템은 기본적으로 서버 독립적 인 브로드 캐스트 프로토콜 인 Avahi 라는 프로토콜을 사용 합니다. 로컬 네트워크 컴퓨터는 접미사가 .local, 당신이 사용하는 리눅스에서 리눅스로 ping을 할 수 있습니다ping hostname.local , 또는 그들을 볼 avahi-discover패키지로 제공된다. Gnome의 일부 앱은 avahi를 사용하여 네트워크의 시스템을 나열합니다 (예 : 원격 데스크톱 뷰어)

  • Linux 컴퓨터에 SAMBA를 설치하면 NetBIOS 이름이 지정되고 (보다 기술적으로는 Linux 컴퓨터가 기본적으로 호스트 이름 인 NetBIOS 이름을 사용하여 브로드 캐스트 요청에 자신을 알리게되며) Windows 컴퓨터에서 Linux를 찾을 수 있습니다. 그들 .

  • Gotcha : Samba가있는 Linux 시스템은 NetBIOS 프로토콜 요청에 응답하지만 Ubuntu와 같은 배포판의 기본 설정을 사용하면 이름을 확인하는 방법으로 NetBIOS를 사용하지 않으므로 Linux 시스템은 서로 또는 Windows를 "볼"수 없습니다 기계 . 이를 위해 /etc/nsswitch.conf파일 을 편집 wins하고 다음 줄의 목록에 추가 해야합니다.

    hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4

  • 당신은 할 수 있습니다 설치해야합니다 winbind(자동으로 설치하지 않을 경우,과 libnss-winbind) 작업을 위위한 패키지.

  • 따라서 가시성 문제의 경우 모든 Linux 시스템에 Samba를 설치하거나 NetBIOS 이름 확인을 활성화하기 위해 /etc/nsswitch.conf를 편집하거나 Windows 시스템에 Avahi 지원을 설치하십시오.

  • 파일 공유와 관련하여 Samba는 Windows와 Linux 시스템의 파일 공유 기능을 제공합니다. 노틸러스의 "네트워크"섹션에서 Linux 시스템에 대해 /etc/nsswitch.conf를 편집하여 서로 공유 폴더를 볼 필요가 없으며 그 반대의 경우도 마찬가지입니다.

이것이 도움이 되었기를 바랍니다! :디


2
에 대한 nsswitch.cong것은 다음과 같은 경우는 ping HOSTNAME당신에게 libnss-winbind를 패키지가 필요하다는 신호의 시스템 오류를 제공합니다.
Michael Stum

18

기본적으로 DNS 서버가없는 Windows는 NetBIOS (Microsoft 이름 확인 프로토콜)를 사용하여 네트워크에 로컬 인 다른 Windows 시스템의 이름을 검색 할 수 있습니다. 이 답변에서 언급했듯이 Linux 측에서 SAMBA (또는 적어도 winbind)를 설정해야합니다. 기본 지침 은 다음과 같습니다 .

Linux 컴퓨터에서 Windows netbios 이름 확인을 활성화하려면 Samba가 설치되어 있는지 확인하십시오 (smb 서비스를 실행할 필요는 없지만). Samba 제품군에는 winbind가 포함되어있어 Windows 호스트 이름을 확인할 수 있습니다. 그런 다음 /etc/nsswitch.conf를 편집하고 다음 줄을 변경하십시오.

hosts: files dns

이에:

hosts: files dns wins

그런 다음 LAN에서 Windows 시스템의 컴퓨터 이름을 ping하여 테스트하십시오.

$ ping windowsbox

BTW, 이것은 WINS와 직접 관련이 없습니다. WINS는 일반적으로 대규모 네트워크에서 브로드 캐스트 트래픽을 줄이고 레거시 중앙 집중식 이름 확인 플랫폼을 제공하며 궁극적으로 다른 네트워크의 시스템이 서로의 NetBIOS 이름 -IP 매핑을 알 수 있도록하는 NetBIOS 서버입니다.

SAMBA의 대안은 DNS 서버를 설정하고 동적 DNS 업데이트를 구성하거나 DHCP가 DNS 레코드를 등록 할 수 있도록하는 것입니다.


3

아마도 LLMNR 일 것입니다 .


1
그렇다면 Windows 시스템이 라우터 DHCP 등록 정보를 사용하여 Linux 상자를 찾게합니까? 그러나 리눅스는 라우터 등록 이름을 사용하여 아무것도 찾을 수 없습니까?
Per Salmi

3
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Mark Henderson

LLMNR이 왜 Windows가 Linux 상자를 찾을 수 있지만 다른 방법으로는 찾을 수 없는지 설명하지는 않습니다. Linux가 LLMNR을 사용하지 않으면 Windows는 Windows를 찾지 만 Linux는 찾지 않습니까?
Per Salmi

2

아마도 Avahi / mDNS Resolution을 설정해야합니다. Windows의 LLMNR과 동일합니다.


0

필요한 소프트웨어가 기본적으로 설치되어 있지 않지만 Linux는 로컬 이름을 확인할 수 있습니다 ...

대부분의 Linux 배포판은 커널 이외의 소프트웨어 요구 사항에 대한 추정을 거의하지 않습니다 ... Debian reference DNSMasq

apt-cache 검색 dnsmasq ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.