Mendaftarkan saham seseorang yang tersedia di jaringan melalui baris perintah di linux

32

Saya bertanya-tanya apakah ada cara daftar semua server seseorang pada jaringan lokal (seperti melihat lingkungan jaringan di windows) melalui baris perintah di fedora.

jcb344
sumber
Apa yang Anda maksud dengan 'server seseorang'? Apakah maksud Anda Samba server, atau apakah Anda maksud semua server file (apakah Samba atau Windows, apakah saya sendiri atau di workgroups / domain lain) yang berbicara dengan protokol SMB?
Kurt Pfeifle
1
Juga, judul pertanyaan Anda (menyebutkan 'saham seseorang') agak bertentangan dengan teksnya (menyebutkan 'server seseorang'). Yang mana yang kamu maksud?
Kurt Pfeifle

Jawaban:

43

Perintah ini adalah rahasia Samba yang sangat sedikit diketahui. Ia mengembalikan alamat IP semua server Samba di domain siarannya sendiri:

nmblookup __SAMBA__

Yang ini mengembalikan daftar semua nama NetBIOS dan alias mereka dari semua server Samba di lingkungan (itu melakukan 'permintaan status simpul' ):

nmblookup -S __SAMBA__

Yang ini mengembalikan daftar semua alamat IP server SMB (yaitu, Linux + Unix / Samba atau Windows) di lingkungan:

nmblookup '*'

Terakhir, semua nama NetBIOS dan alias dari semua server SMB (Linux + Unix / Samba atau Windows):

nmblookup -S '*'


Perintah yang diberikan dalam jawaban lain nmblookup -S WORKGROUPtidak tidak mengembalikan semua Samba atau semua server SMB dari lingkungan. Alih-alih, ia mengembalikan semua nama NetBIOS server yang kebetulan adalah anggota kelompok kerja bernama 'WORKGROUP' . Hasilnya independen dari OS server (apakah itu Windows, atau apakah itu Linux / Samba) - dan itu adalah fakta yang diketahui bahwa kadang-kadang banyak server anggota Windows adalah bagian dari domain atau kelompok kerja yang dikontrol Samba. [Ya, kebetulan nama workgroup default Samba adalah 'WORKGROUP' ... tapi jadi apa ??]. - Tetapi pertanyaannya adalah 'Bagaimana saya bisa mengetahui semua server SMB (Samba?!?) Di lingkungan jaringan saya?'

Kurt Pfeifle
sumber
Ini harus ditandai sebagai jawaban yang benar.
rbellamy
4
Menariknya menggunakan saran ini saya hanya melihat Samba berbagi di server saya saat ini. Untuk benar-benar mendeteksi server Samba lain (ia memiliki workgroup WORKGROUP), saya harus menjalankan nmblookup -S WORKGROUP.. tidak yakin bagaimana benar-benar mendaftar server mana pun karena nmblookup -S '*'dan perintah lain hanya mengembalikan server lokal seperti yang disebutkan di atas.
davidhq
Bagi saya juga, jawaban yang lain bekerja lebih baik, meskipun tidak benar. nmblookup -S '*'mengembalikan hanya server lokal. informasi lebih lanjut mungkin diperlukan ... SAMBA hanya mengembalikan server samba, sementara saya semua suka semua saham SMB (termasuk windows). Setidaknya saya menemukan jendela berbagi yang merupakan bagian dari WORKGROUP. Saya tidak yakin mengapa semua keributan tentang samba / smbd, dan mengapa jawaban ini akan mendapatkan poin.
Fred
@ Fred: Jawabannya mengatakan secara eksplisit (tidak cukup jelas?!?) Bahwa (1) dengan __SAMBA__Anda mendapatkan server Samba , dan (2) dengan '*'Anda mendapatkan semua server SMB . Jawaban ini mendapat poin karena itu yang benar.
Kurt Pfeifle
Saya hanya mengatakan ini tidak berfungsi di komputer saya. Saya menggunakan ubuntu 16.04, nmblookup dari paket samba-common-bin 2: 4.3.8 + dfsg-0ubuntu1. Mungkin ada yang salah dengan lingkungan saya. Atau regresi dalam alat, sudah lama pertanyaan ini dijawab. Komentar sebelumnya menunjukkan saya tidak sendirian melihat perilaku ini.
Fred
12
nmblookup -S WORKGROUP 

dari: https://web.archive.org/web/20101121043732/http://brneurosci.org/linuxsetup38b.html

andyortlieb
sumber
Anda mungkin perlu mengubah pengaturan firewall pada pemasangan default.
Ophidian
2
Saya akan menurunkan jawaban ini. - Saya tidak percaya bahwa jawaban yang SALAH mendapatkan 2 suara positif. Perintah yang diberikan hanya mencantumkan server yang merupakan anggota dari workgroup bernama "workgroup". Dan itu daftar mereka terlepas dari OS (Samba / Linux atau tidak, Windows atau tidak). Pertanyaannya adalah tentang mengenal semua server SAMBA di jaringan lokal (terlepas dari nama workgroup).
Kurt Pfeifle
7
Sebenarnya, dia tidak mengatakan sedang mencari semua server samba. Dia mengatakan "semua server seseorang". Saya kira saya gagal menguraikan sejauh yang Anda lakukan, di bahwa Anda dapat mencari workgroup wildcard - tapi sungguh, saya membuatnya jelas bahwa saya sedang referensi manual, dan saya mendapatkan OP apa yang dia butuhkan. Belum lagi, saya menjawab setengah bulan sebelum Anda - saya tidak mengerti apa yang Anda begitu bengkok tentang.
andyortlieb
10

Di jaringan saya - pada tulisan ini (semuanya berubah) - smbtree adalah solusi pilihan saya. Ia meminta kata sandi Anda (artinya kata sandi Samba Anda), dan kemudian memberikan daftar terinci yang mencakup nama netbios, pembagian yang tersedia, dan deskripsi berbagi.

nmblookup, di sisi lain, tidak mencantumkan semua saham yang tersedia di jaringan saya. Saya tidak tahu mengapa tidak, tetapi tidak.

Dari halaman manual smbtree:

smbtree adalah program browser seseorang dalam mode teks. Ini mirip dengan "Network Neighborhood" yang ditemukan di komputer Windows. Ini mencetak pohon dengan semua domain yang dikenal, server di domain tersebut dan saham di server.

Perintah nmblookup memang memiliki lebih banyak sakelar dan opsi. Halaman manual nmblookup : halaman manual nmblookup

Tercatat karena keturunan - karena jawaban-jawaban ini tetap ada - dan seperti yang saya katakan, saya menemukan bahwa smbtree akan menjadi jawaban yang lebih baik untuk OP di jaringan saya.

Corvus B
sumber
Output dari smbtree hebat! - Berharap itu tidak meminta PWD saya ketika saya login di root tho, belum pernah melihatnya sebelumnya!
FreeSoftwareServers
@FreeSoftwareServers Coba smbtree -Njika Anda melihat layanan yang tidak memerlukan kata sandi.
Ben C
Saya mengerti, ia menginginkan kata sandi SMB bukan kata sandi root saya, kemungkinan besar itu sama, tetapi ya saham saya terbatas pada kumpulan alamat IP non dhcp, tetapi tidak ada kata sandi
FreeSoftwareServers
4

cara yang lebih baik, lebih baik dicetak, adalah menggunakan 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
Stagira
sumber
1
@ Corvus-B sudah menyarankan smbtreedalam jawaban jauh sebelumnya.
user4838962
3

Cara lain untuk melakukan ini adalah melalui Avahi (Bonjour), selama server menerbitkan:

avahi-browse -r _smb._tcp
hooby3dfx
sumber
3

Dalam samba versi 4, nmblookup '*'tidak lagi berfungsi; hanya memberikan server lokal. Dulu bekerja di samba versi 3.

Sekarang, Anda harus menggunakan nmblookup WORKGROUP, yang seperti yang disebutkan Kurt, hanya mengembalikan server di workgroup WORKGROUP.

Doke
sumber