トラブル解決 - ネットワーク編 - 共有フィルダにアクセスできない
Windowsネットワークは,NetBIOSを利用して名前解決やファイル共有などを行っている。このため,NetBIOSで利用するポートが開いていないと,名前解決や共有フォルダへのアクセスを行うことができない。つまり,Windowsネットワークに参加するパソコンは,ポートを開けておく必要がある。パーソナルファイアウォールを導入している場合は,pingにも応答しない可能性があるので,共有フォルダを設定しているパソコンでパーソナルファイアウォールの設定を確認しよう。ユーザー名とパスワードを入力しても共有フォルダへアクセスできない場合は,アカウントとアクセス権の設定に問題がある。簡易ファイル共有でアクセスできない場合は,Guestアカウントが無効になっていないかを確認しよう。
簡易ファイル共有を利用していない場合は,ユーザー名とパスワードが一致していれば共有フォルダにアクセスできるはずだ。ただし,アカウントに対してパスワードが設定されていない場合は,ローカルログオンしか許可されないので注意しよう。また,共有フォルダにアクセスしても,フォルダ内のファイルにアクセスできない場合は,NTFSのアクセス権を確認するとよい。簡易ファイル共有が有効な場合は,Guestアカウントに適切なアクセス権が与えられているかどうかを,無効の場合はアクセス時に利用したアカウントに対して適切なアクセス権が与えられているかどうかを確認する。
共有フォルダにコンピュータ名でアクセスできない場合は,NetBIOSの名前解決が正しく行われるかどうかを確認しよう。NetBIOSの名前解決は,ブロードキャストを利用するケースと,lmhostsファイルを利用するケース,WINSサーバを利用するケースの3つのパターンがある。lmhostsファイルやWINSサーバを利用するのは,比較的大規模なネットワークの場合が多いので,ここではブロードキャストを利用する場合に絞って説明しておこう。まず,サーバに接続する場合,その名前を持つサーバを探すためにブロードキャストが行われる。このブロードキャストはUDPの137番ポートを利用するので,パーソナルファイアウォールで137番ポートが閉じられていると名前解決ができず.接続することができない。ブロードキャストされた名前を持つパソコンが応答すれば,名前解決が完了する。NetBIOSによる名前解決はOSによって自動的に行われるが,nbtstatコマンドを利用して手動で名前解決を行うことも可能だ。nbtstatコマンドに「a」オプションでNetBIOS名を指定すると,その名前が解決できるかどうかを確認できる(図)。また,nbtstatコマンドの「-a」オプションでIPアドレスを指定すれば,指定したIPアドレスによって名前解決できるかどうかを確認することが可能。
NetBIOSで利用するポート
プロトコル | ポー卜番号 | 役割 |
UDP | 137 | コンピュータ名(NetBIOS名)の名前解決に利用 |
138 | ブラウジングなどに利用 | |
TCP | 139 | NetBIOSセッション用のポートで.ファイル共有において実際のデータのやりとりで利用 |
445 | ダイレクトホストSMB用のポートで,TCP139番と同じ役割を持つ |