Liệt kê các chia sẻ smb có sẵn trên mạng thông qua dòng lệnh trong linux


32

Tôi đã tự hỏi nếu có một cách liệt kê tất cả các máy chủ smb trên một mạng cục bộ (như nhìn vào một vùng lân cận mạng trong các cửa sổ) thông qua dòng lệnh trong fedora.


Bạn có ý nghĩa gì với 'máy chủ smb'? Bạn có nghĩa là máy chủ Samba , hay bạn có nghĩa là tất cả các máy chủ tệp (wether Samba hoặc Windows, wether in my own hoặc in workgroups / domain khác) nói giao thức SMB?
Kurt Pfeifle

1
Ngoài ra, tiêu đề câu hỏi của bạn (đề cập đến 'cổ phiếu smb') phần nào mâu thuẫn với văn bản của nó (đề cập đến 'máy chủ smb'). Ý bạn là gì
Kurt Pfeifle

Câu trả lời:


43

Lệnh này là một bí mật rất ít được biết đến của Samba. Nó trả về địa chỉ IP của tất cả các máy chủ Samba trong miền quảng bá của chính mình:

nmblookup __SAMBA__

Cái này trả về một danh sách tất cả các tên NetBIOS và bí danh của tất cả các máy chủ Samba trong vùng lân cận (nó thực hiện một 'truy vấn trạng thái nút' ):

nmblookup -S __SAMBA__

Cái này trả về một danh sách tất cả các địa chỉ IP của máy chủ SMB (nghĩa là Linux + Unix / Samba hoặc Windows) trong vùng lân cận:

nmblookup '*'

Cuối cùng, tất cả tên NetBIOS và bí danh của tất cả các máy chủ SMB (Linux + Unix / Samba hoặc Windows):

nmblookup -S '*'


Lệnh được đưa ra trong câu trả lời khác nmblookup -S WORKGROUPkhông KHÔNG trả lại tất cả Samba hoặc tất cả các máy chủ SMB từ khu phố. Thay vào đó, nó trả về tất cả các tên NetBIOS của máy chủ, những người tình cờ là thành viên của một nhóm làm việc có tên 'WORKGROUP' . Các kết quả độc lập với HĐH của máy chủ (wether là Windows, hay wether là Linux / Samba) - và một thực tế nổi tiếng là đôi khi rất nhiều máy chủ thành viên Windows là một phần của miền hoặc nhóm làm việc do Samba kiểm soát. [Vâng, điều xảy ra là tên nhóm làm việc mặc định của Samba là 'WORKGROUP' ... nhưng vậy thì sao ??]. - Nhưng câu hỏi là 'Làm thế nào để tôi biết tất cả các máy chủ SMB (Samba?!?) Trong vùng lân cận mạng của tôi?'


Điều này nên được đánh dấu là câu trả lời chính xác.
rbellamy

4
Thật thú vị khi sử dụng các đề xuất này, tôi chỉ thấy chia sẻ Samba trên máy chủ mà tôi hiện đang sử dụng. Để thực sự phát hiện một máy chủ Samba khác (nó có nhóm làm việc WORKGROUP), tôi đã phải chạy nmblookup -S WORKGROUP.. không biết làm thế nào để thực sự liệt kê bất kỳ máy chủ nào nmblookup -S '*'và các lệnh khác chỉ trả về máy chủ cục bộ như đã đề cập ở trên.
davidhq

Đối với tôi cũng vậy, câu trả lời khác làm việc tốt hơn, mặc dù không chính xác. nmblookup -S '*'chỉ trả về máy chủ cục bộ. có thể cần thêm thông tin ... SAMBA chỉ trả về máy chủ samba, trong khi tôi muốn tất cả chia sẻ SMB (bao gồm cả cửa sổ). Ít nhất tôi đã tìm thấy chia sẻ cửa sổ là một phần của WORKGROUP. Tôi không chắc tại sao tất cả những ồn ào về samba / smbd, và tại sao câu trả lời này sẽ nhận được điểm.
Fred

@Fred: Câu trả lời nói rõ ràng (không đủ rõ ràng?!?) Rằng (1) với __SAMBA__bạn có được các máy chủ Samba và (2) với '*'bạn có tất cả các máy chủ SMB . Câu trả lời này được điểm bởi vì nó là chính xác.
Kurt Pfeifle

Tôi chỉ nói điều này không hoạt động trên máy tính của tôi. Tôi đang sử dụng Ubuntu 16.04, nmblookup từ gói samba-common-bin 2: 4.3.8 + dfsg-0ubfox1. Có lẽ có điều gì đó không ổn với môi trường của tôi. Hoặc hồi quy trong các công cụ, đã lâu rồi câu hỏi này được trả lời. Nhận xét trước đó cho thấy tôi không đơn độc nhìn thấy hành vi này.
Fred

12

Bạn có thể cần phải điều chỉnh các cài đặt tường lửa trên cài đặt mặc định.
Ophidian

2
Tôi sẽ hạ thấp câu trả lời này. - Tôi không thể tin rằng một câu trả lời SAU như vậy được 2 lần. Lệnh đã cho chỉ liệt kê các máy chủ là thành viên của nhóm làm việc có tên là "nhóm làm việc". Và nó liệt kê chúng bất kể HĐH (Samba / Linux hay không, Windows hay không). Câu hỏi là về việc tìm hiểu tất cả các máy chủ SAMBA trên mạng cục bộ (bất kể tên nhóm làm việc).
Kurt Pfeifle

7
Trên thực tế, anh ta đã không nói rằng anh ta đang tìm kiếm tất cả các máy chủ samba. Ông nói "tất cả các máy chủ smb". Tôi cho rằng tôi đã thất bại trong việc xây dựng mức độ mà bạn đã làm, trong đó bạn có thể tìm kiếm các nhóm làm việc ký tự đại diện - nhưng thực sự, tôi đã nói rõ rằng tôi đang tham khảo hướng dẫn và tôi đã nhận được OP những gì anh ta cần. Chưa kể, tôi đã trả lời nửa tháng trước khi bạn làm - Tôi không hiểu bạn đang bị gò bó về điều gì.
andyortlieb

10

Trên mạng của tôi - như bài viết này (mọi thứ thay đổi) - smbtree là giải pháp ưa thích của tôi. Nó yêu cầu mật khẩu của bạn (nghĩa là mật khẩu Samba của bạn), và sau đó nó đưa ra một danh sách chi tiết độc đáo bao gồm tên netbios, cổ phần có sẵn và mô tả chia sẻ.

mặt khác, nmblookup không liệt kê tất cả các cổ phần có sẵn trên mạng của tôi. Tôi không biết tại sao nó không, nhưng nó không.

Từ trang người đàn ông smbtree:

smbtree là một chương trình trình duyệt smb ở chế độ văn bản. Nó tương tự như "Vùng lân cận mạng" được tìm thấy trên các máy tính Windows. Nó in một cây với tất cả các miền đã biết, các máy chủ trong các miền đó và chia sẻ trên các máy chủ.

Lệnh nmblookup không có nhiều công tắc và tùy chọn hơn. Trang người đàn ông nmblookup : trang người đàn ông nmblookup

Lưu ý cho hậu thế - vì những câu trả lời này xuất hiện xung quanh - và như tôi đã nói, tôi thấy rằng smbtree sẽ là câu trả lời tốt hơn cho OP trên mạng của tôi.


Đầu ra của smbtree là tuyệt vời! - Ước gì nó không yêu cầu NKT của tôi khi tôi đăng nhập vào một gốc tho, chưa từng thấy điều đó trước đây!
FreeSoftwareServers

@FreeSoftwareServers Hãy thử smbtree -Nnếu bạn đang xem các dịch vụ không cần mật khẩu.
Ben C

Tôi hiểu, nó muốn mật khẩu SMB không phải mật khẩu gốc của tôi, chúng có thể giống nhau, nhưng vâng tôi có cổ phần của mình bị giới hạn ở nhóm địa chỉ IP không dhcp, nhưng không có mật khẩu
FreeSoftwareServers

4

một cách tốt hơn, in ấn hơn, là sử dụng 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 đã đề nghị smbtreetrong một câu trả lời từ lâu.
dùng4838962

3

Một cách khác để làm điều này là thông qua Avahi (Bonjour), miễn là các máy chủ được xuất bản:

avahi-browse -r _smb._tcp

3

Trong samba phiên bản 4, nmblookup '*'không còn hoạt động; nó chỉ cung cấp cho máy chủ cục bộ. Nó được sử dụng để làm việc trong samba phiên bản 3.

Bây giờ, bạn phải sử dụng nmblookup WORKGROUP, như Kurt đã đề cập, chỉ trả về các máy chủ trong nhóm làm việc WORKGROUP.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.