Linux의 명령 행을 통해 네트워크에서 사용 가능한 smb 공유 나열


32

fedora의 명령 줄을 통해 로컬 네트워크의 모든 smb 서버를 나열하는 방법이 있는지 궁금합니다 (Windows의 네트워크 환경을 보는 것처럼).


'smb 서버'란 무엇입니까? 당신은 의미합니까 삼바 서버, 또는 당신이 (내 자신의 어떠했는지 또는 다른 작업 그룹 / 도메인에 삼바 또는 Windows, 거세한 숫양) SMB 프로토콜을 이야기하는 모든 파일 서버를 의미합니까?
Kurt Pfeifle

1
또한 귀하의 질문 제목 ( 'smb 공유'언급)은 텍스트 ( 'smb 서버'언급)와 다소 모순됩니다. 무슨 뜻 이세요?
커트 파이 플

답변:


43

이 명령은 삼바의 알려진 비밀입니다. 자체 브로드 캐스트 도메인에있는 모든 Samba 서버 의 IP 주소를 반환 합니다.

nmblookup __SAMBA__

이것은 이웃에있는 모든 Samba 서버의 모든 NetBIOS 이름 및 별명 목록을 리턴합니다 ( '노드 상태 조회'수행 ).

nmblookup -S __SAMBA__

이것은 이웃에있는 SMB 서버 (Linux + Unix / Samba 또는 Windows) 의 모든 IP 주소 목록을 반환합니다 .

nmblookup '*'

마지막으로 모든 SMB 서버 (Linux + Unix / Samba 또는 Windows)의 모든 NetBIOS 이름 및 별명 :

nmblookup -S '*'


다른 답변에 제공된 명령 은 이웃에서 모든 Samba 또는 모든 SMB 서버를 반환 nmblookup -S WORKGROUP하지 않습니다 . 대신 'WORKGROUP'이라는 작업 그룹의 구성원 인 모든 서버의 NetBIOS 이름 반환합니다 . 결과는 서버의 OS (Windows 또는 Linux / Samba)와 무관하며, 많은 Windows 구성원 서버가 Samba 제어 도메인 또는 작업 그룹의 일부라는 것은 잘 알려진 사실입니다. [그렇습니다. 삼바의 기본 작업 그룹 이름은 'WORKGROUP'입니다. 그러나 문제는 '네트워크 환경에있는 모든 SMB (Samba?!?) 서버를 어떻게 알 수 있습니까?'였습니다.


정답으로 표시해야합니다.
rbellamy

4
흥미롭게도 이러한 제안을 사용하면 현재 사용중인 서버에서 Samba 공유 만 볼 수 있습니다. 다른 Samba 서버 (WORKGROUP 작업 그룹이 있음)를 실제로 감지하려면 nmblookup -S WORKGROUP.. 를 실행해야했습니다 . 왜냐하면 실제로 서버를 나열하는 방법을 모르고 nmblookup -S '*'다른 명령은 위에서 언급 한 것처럼 로컬 서버 만 반환했습니다.
davidhq

나에게도 다른 대답은 정확하지는 않지만 더 잘 작동했습니다. nmblookup -S '*'로컬 서버 만 반환합니다. 자세한 정보가 필요할 수 있습니다 ... SAMBA 는 삼바 서버 만 반환하지만 모든 SMB 공유 (윈도우 포함)를 원합니다. 적어도 WORKGROUP의 일부인 창 공유를 찾았습니다. 왜 삼바 / SMBD에 대한 모든 소란이 있는지, 왜이 대답이 포인트를 얻는 지 잘 모르겠습니다.
Fred

@Fred : 대답은 (1) Samba 서버 __SAMBA__를 얻 거나 (2) 모든 SMB 서버 를 얻 습니다 . 이 답변은 정답이므로 점수를 얻습니다. '*'
Kurt Pfeifle

나는 이것이 내 컴퓨터에서 작동하지 않는다고 말합니다. 패키지 samba-common-bin 2 : 4.3.8 + dfsg-0ubuntu1의 우분투 16.04, nmblookup을 사용하고 있습니다. 내 환경에 문제가있을 수 있습니다. 또는 도구의 회귀,이 질문에 오랫동안 대답했습니다. 이전의 의견은이 행동을보고있는 것이 혼자가 아니라고 제안합니다.
Fred

12

기본 설치에서 방화벽 설정을 조정해야 할 수도 있습니다.
Ophidian

2
이 답변을 공감하겠습니다. -그런 잘못된 답변이 2 개의 공감대를 얻는다 는 것을 믿을 수 없습니다 . 제공된 명령은 "workgroup"이라는 작업 그룹의 구성원 인 서버 만 나열합니다. 그리고 OS (Samba / Linux 여부, Windows 여부)에 관계없이 나열됩니다. 문제는 작업 그룹 이름에 관계없이 로컬 네트워크의 모든 SAMBA 서버 를 알아야한다는 것 입니다.
Kurt Pfeifle

7
실제로 그는 모든 삼바 서버를 찾고 있다고 말하지 않았습니다. 그는 "모든 smb 서버"라고 말했다. 와일드 카드 작업 그룹을 검색 할 수 있다는 점에서 내가 한 정도까지 정교화하지 못했다고 생각하지만 실제로 매뉴얼을 참조하고 있음을 분명히하고 OP가 필요한 것을 얻었습니다. 말할 것도없이, 당신이 한 달 반 전에 대답했습니다.
andyortlieb

10

내 네트워크에서-이 글을 쓰는 시점 (사실은 변경됨)-smbtree가 선호되는 솔루션입니다. 암호 (Samba 암호를 의미)를 요구 한 다음 netbios 이름, 사용 가능한 공유 및 공유 설명이 포함 된 멋진 목록을 제공합니다.

반면에 nmblookup은 내 네트워크에서 사용 가능한 모든 공유를 나열하지 않습니다. 왜 그렇지 않은지 모르겠지만 그렇지 않습니다.

smbtree 매뉴얼 페이지에서 :

smbtree는 텍스트 모드의 smb 브라우저 프로그램입니다. Windows 컴퓨터에있는 "네트워크 환경"과 유사합니다. 알려진 모든 도메인, 해당 도메인의 서버 및 서버의 공유가있는 트리를 인쇄합니다.

nmblookup 명령에는 더 많은 스위치와 옵션이 있습니다. nmblookup 매뉴얼 페이지 : nmblookup 매뉴얼 페이지

후손으로 주목-이 답변이 붙어 있기 때문에-내가 말했듯이 smbtree가 내 네트워크의 OP에 대한 더 나은 답변이라는 것을 알았습니다.


smbtree의 출력은 훌륭합니다! -내가 루트에 로그인했을 때 내 PWD를 요청하지 않았 으면 좋겠다.
FreeSoftwareServers

@FreeSoftwareServers smbtree -N암호가 필요없는 서비스를보고 있다면 사용해보십시오 .
벤 C

SMB 비밀번호가 루트 비밀번호가 아닌 다른 비밀번호를 원했지만 동일 할 수 있지만, 비공유 IP 주소 풀로 제한되어 있지만 비밀번호는 없습니다.
FreeSoftwareServers

4

더 화려하게 인쇄되는 더 좋은 방법은 smbtree를 사용하는 것입니다.

$ smbtree
Enter user01's password: DOMAIN_A
        \\FREEBOX_SERVER                Freebox Server
                \\FREEBOX_SERVER\IPC$                   IPC Service (Freebox Server)
                \\FREEBOX_SERVER\Disque dur             AutoShare of fbxhdiskd partition 2

1
@ Corvus-B는 이미 smbtree오래 전에 답변을 제안 했습니다.
user4838962 2016 년

3

다른 방법은 서버가 게시하는 한 Avahi (Bonjour)를 이용하는 것입니다.

avahi-browse -r _smb._tcp

3

Samba 버전 4에서는 nmblookup '*'더 이상 작동하지 않습니다. 로컬 서버 만 제공합니다. 삼바 버전 3에서 작동했습니다.

이제 nmblookup WORKGROUPKurt가 언급했듯이 workgroup의 서버 만 반환하는 을 사용해야 합니다 WORKGROUP.

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