さくらのVPSでwebdavを使えるようにしたが、
sambaが使いたくなった。
あたかもパソコンのローカルドライブであるかのように、
さくらのVPSのファイルを操作できるのである。
sambaの設定自体はたいしたことがない。
が、うまくいかない。
Windowsのコマンドプロンプトで、
\\example.com\samba
とやると、30秒くらいかな、たって、「アクセスできません」となる。
コマンドプロンプトから
net view \\example.com\samba
とやると、
システムエラー53が発生しました。
ネットワークパスが見つかりません
となる。
sambaが動作するために必要なことは、
・ディレクトリが存在している、アクセス権がある
・サーバで必要なポートを開放している
・クライアントで必要なポートを開放している(ファイル共有が有効になっている)
とか、いろいろあって、それぞれは問題ない。
が、どうも、一番最初にクライアントから送信される TCP 445の synが、
サーバに届いていない。
まず、クライアントであるWindows7で、wiresharkでキャプチャしてみる。
すると、サーバ宛の、TCP dst port 445のsynが送信されているのが確認できる。
これの応答がない。
2回再送されたのち、なぜかpingが飛ぶ。
これは応答がある。
そのあと、さらに3回再送される。
これを見れば誰もが、「サーバでport 445を待っていないか、firewallで開けてないんでしょ」
と思うだろう。
サーバでnetstatすると、
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
が確認できる。
iptablesも設定して問題なく、
さらに、iptables自体を止めてしまってもダメだ。
サーバでtcpdumpしてみる。
自分が接続しているsshとか余計なものを除外して、
さっきの net view をやっても、何も表示されない。
適当なポートを指定してtelnetしてみると、
接続はできないがtcpdumpでsynが見える。
これは、クライアントでもサーバでもない何かがTCP445を止めているとしか思えない。
JCOMのルータだろうか?
風呂に入っているときに、思いついた。
じゃあ、iPhoneでテザリングしてやってみたらどうか。
JCOM回線を使わず、iPhoneテザリングでインターネットにアクセスすると、
パスワードプロンプトが出た。
やった!!
ユーザ登録やフォルダのパス名やアクセス権を直して、
使えるようになった。
さて、jcomルータをどうするかだ・・・。