Linuxのコマンドラインを介してネットワーク上の使用可能なsmb共有を一覧表示する


32

fedoraのコマンドラインを使用して、ローカルネットワーク上のすべてのsmbサーバーを一覧表示する方法があるかどうか(Windowsでネットワークネイバーフッドを見るなど)があるのではないかと思いました。


「smbサーバー」とはどういう意味ですか?あなたは意味するかのSambaサーバを、またはあなたが(天気を自分や他のワークグループ/ドメインに、SambaまたはWindowsの天気を)SMBプロトコルを話すすべてのファイルサーバーを意味していますか?
カートPfeifle

1
また、質問のタイトル(「smb共有」に言及)は、そのテキスト(「smbサーバー」に言及)と多少矛盾します。あなたはどちらを意味しましたか?
カートPfeifle

回答:


43

このコマンドは、Sambaのほとんど知られていない秘密です。自身のブロードキャストドメインにあるすべてのSambaサーバーのIPアドレスを返します。

nmblookup __SAMBA__

これは、近隣のすべてのSambaサーバーのすべてのNetBIOS名とそのエイリアスのリストを返します(「ノードステータスクエリ」を実行します)。

nmblookup -S __SAMBA__

これは、近隣のSMBサーバー(つまり、Linux + Unix / SambaまたはWindows)のすべてのIPアドレスのリストを返します。

nmblookup '*'

最後に、すべてのSMBサーバーのすべてのNetBIOS名とそのエイリアス(Linux + Unix / SambaまたはWindows):

nmblookup -S '*'


他の回答で与えられたコマンドは、すべてのSambaまたはすべてのSMBサーバーを近隣から返しnmblookup -S WORKGROUPませ。代わりに、「WORKGROUP」という名前のワークグループのメンバーであるすべてのサーバーのNetBIOS名返します。結果はサーバーのOS(WindowsであろうとLinux / Sambaであろうと)に依存しません-そして、多くのWindowsメンバーサーバーがSambaが制御するドメインまたはワークグループの一部であることがよく知られています。[はい、Sambaのデフォルトのワークグループ名が 'WORKGROUP'であることが発生します...しかし、何ですか??]。-しかし、質問は、「ネットワーク周辺のすべてのSMB(Samba?!?)サーバーを知るにどうすればよいですか?」


これは正解としてマークする必要があります。
rbellamy

4
興味深いことに、これらの提案を使用すると、現在使用しているサーバー上のSamba共有のみが表示されます。他のSambaサーバー(WORKGROUPワークグループを持っている)を実際に検出するには、nmblookup -S WORKGROUP.. を実行する必要がnmblookup -S '*'ありました。
davidhq

私にとっても、他の答えはうまくいきましたが、正しくありませんでした。nmblookup -S '*'ローカルサーバーのみを返します。さらに情報が必要になる可能性があります... SAMBAはsambaサーバーのみを返しますが、すべてのSMB共有(ウィンドウを含む)が必要です。少なくとも、WORKGROUPの一部であるウィンドウ共有を見つけました。私はなぜsamba / smbdについて大騒ぎし、なぜこの答えがポイントを得るのかわからない。
フレッド

@Fred:(1)Sambaサーバー__SAMBA__を取得すると、(2)すべてのSMBサーバーを取得すると、(明確に十分ではない?!?)という答えが明示されます。この答えは正しいのでポイントを獲得します。'*'
カートPfeifle

私はこれが私のコンピューターで機能していないとだけ言っています。ubuntu 16.04、パッケージsamba-common-bin 2:4.3.8 + dfsg-0ubuntu1のnmblookupを使用しています。私の環境に何か問題があるのか​​もしれません。またはツールの退行、それはこの質問に答えられた長い時間でした。前のコメントは、この行動を見ているのは私だけではないことを示唆しています。
フレッド

12

デフォルトのインストールでファイアウォール設定を調整する必要がある場合があります。
オフィディアン

2
この答えに投票します。-私はそのような信じられないWRONG答えは2 upvotesを取得します。指定されたコマンドは、「workgroup」という名前のワークグループのメンバーであるサーバーのみをリストします。また、OS(Samba / Linuxかどうか、Windowsかどうか)に関係なくそれらをリストします。質問は、ローカルネットワーク上のすべてのSAMBAサーバーについて知ることです(ワークグループ名に関係なく)。
カートPfeifle

7
実際、彼はすべてのSambaサーバーを探しているとは言いませんでした。彼は「すべてのsmbサーバー」と言った。ワイルドカードワークグループを検索できるという点で、あなたがやった程度まで詳しく説明できなかったと思いますが、実際、マニュアルを参照していることを明確にし、OPが必要なものを得たと思います。言うまでもなく、私はあなたがそうする前に半月答えました-私はあなたが何についてあまりに曲がっているかについて理解しません。
andyortlieb

10

私のネットワークでは、この記事の執筆時点(物事は変化します)で、smbtreeが私の推奨ソリューションです。パスワード(Sambaパスワードを意味する)を要求し、netbios名、利用可能な共有、および共有の説明を含む適切な詳細リストを提供します。

一方、nmblookupは、ネットワーク上で利用可能なすべての共有をリストしません。なぜそうならないのかわかりませんが、わかりません。

smbtreeのマニュアルページから:

smbtreeはテキストモードのsmbブラウザープログラムです。これは、Windowsコンピューターにある「ネットワークコンピュータ」に似ています。すべての既知のドメイン、それらのドメイン内のサーバー、およびサーバー上の共有を含むツリーを印刷します。

nmblookupコマンドには、さらに多くのスイッチとオプションがあります。nmblookup manページ:nmblookup manページ

後世のために-これらの答えは固執しているので-私が言ったように、私はsmbtreeが私のネットワーク上のOPに対するより良い答えであることがわかります。


smbtreeの出力は素晴らしいです!-ルートトーにログインしたときにPWDを要求しなかったことを願います。
FreeSoftwareServers

@FreeSoftwareServers smbtree -Nパスワードを必要としないサービスを見ている場合に試してください。
ベンC

ルートパスワードではなくSMBパスワードが必要であり、同じである可能性が高いことを理解していますが、共有はDHCP以外の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

3

これを行う別の方法は、サーバーが公開している限り、Avahi(Bonjour)経由です。

avahi-browse -r _smb._tcp

3

sambaバージョン4では機能しnmblookup '*'なくなりました。ローカルサーバーのみを提供します。以前は、Sambaバージョン3で動作していました。

ここで、nmblookup WORKGROUPKurtが述べたように、workgroupのサーバーのみを返すを使用する必要がありますWORKGROUP

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.