Ubuntu 13.04 を実行しているクライアントを、最近 Windows Server 2003 から 2012 にアップグレードされたファイル サーバーによってホストされているネットワーク共有に接続しようとしています。
現在、以下を使用して LAN に接続しながらリモート共有をマウントできます。
sudo mount -t cifs //myserver.mydomain.co.uk/myshare /media/myshare/ -o user=myself,domain=myworkgroup,pass=**********
しかし、Cisco (IPsec/Xauth) VPN 経由で共有をマウントする際に問題が発生しています。サーバーのアップグレード前は問題はありませんでしたが、現在は次のメッセージが表示されます。
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
dmesg | tail
私に与える[ 1975.651346] CIFS VFS: cifs_mount failed w/return code = -112
ホストがダウンしている可能性はほぼありません。次のコマンドを使用して、VPN 経由で同じ共有に接続できますsmbclient
。
smbclient //myserver.mydomain.co.uk/myshare -U myself -W myworkgroup
Enter myself's password:
session request to MYSERVER.MYDOMAIN failed (Called name not present)
Domain=[MYWORKGROUP] OS=[Windows Server 2012 Standard 9200] Server=[Windows Server 2012 Standard 6.2]
smb: \>
session request to MYSERVER.MYDOMAIN failed (Called name not present)
ディレクトリ構造を参照することはできるので、「 」エラーの意味はわかりません。
次に試すべきことについて何か提案はありますか?
答え1
SMB クライアントでは、「匿名」として接続できるため、接続できます。ただし、匿名として接続できるということは、一般ユーザー向けの認証サービスが機能していることを意味するわけではありません。
おそらくファイアウォールに問題があるのでしょう。次の 4 つのポートを開いてください:
- UDP&TCP/137
- UDP&TCP/138
- UDP&TCP/139
- TCP/445
Windows 側の Netlogon サービスにも通信を許可していることを確認してください。
答え2
VPN経由で接続する場合、ポート445/tcpにアクセスできますか?
nc -v myserver.mydomain.co.uk 445.
もしそれがうまくいったなら。
Connection to myserver.mydomain.co.uk 445 port [tcp/microsoft-ds] succeeded!
発生する可能性がある唯一の問題は、ファイアウォールがプロキシ接続を成功させるかどうかです。その場合は、パケット キャプチャを実行して、Windows サーバーが何かを送信しているかどうかを確認します。
答え3
さて、1年後、ついに私はそれを理解しました!
根本的な原因は、ホスト名の解決に問題があることが判明しました。ヒントは、VPN 経由で同じリモート ネットワーク上のマシンに SSH 接続する際の別の問題を解決しようとしたときに見つかりました。
の出力からssh -v
:
debug1: Connecting to myserver2.mydomain.ox.ac.uk [163.1.21.182] port 22.
OpenSSHが意味不明なIPアドレスに接続しようとしていることが分かりました(実際にはサーバーのホスト名をネットワークプリンターのIPアドレスに解決していました)。ping
ホスト名を正しく解決できないことも分かりましたが、host
うまくいっているようでした。それが最終的に私を導きました。このスレッドAsk Ubuntu で。
ping
と はssh
両方とも glibc リゾルバを使用することが判明しましたmount.cifs
。 も同様です。 glibc が名前サービス情報を取得するソースは、次のように設定されます。/etc/nsswitch.conf
。
私の元々の内容はnsswitch.conf
次のようになりました:
passwd: compat
group: compat
shadow: compat
hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns wins mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
重要な行は で始まる行でhosts:
、これは glibc がホスト名解決を実行するときに照会するソースの順序をリストします。私のバージョンでは、検索順序でdns
が後に来ることに注意してください。[NOTFOUND=return]
私の解釈では、glibc が最初の 4 つのソースに従ってホスト名を解決できない場合、実際に DNS サーバーに問い合わせる前に返されるということです。なぜnsswitch.conf
このように設定されたのかはわかりません (そのように設定したわけではありません) が、次の行を次のように変更します。
hosts: files myhostname mdns4_minimal dns [NOTFOUND=return] wins mdns4
突然ping
、、、ssh
を含むすべてが正常に動作するようになりましたmount.cifs
。