最近の記事
- 9/1 - 将棋始めました
- 5/16 - サーバー引っ越し
- 4/24 - 優先順位
- 3/17 - vbNullString と 空文字列 ""
- 3/15 - InputBox 関数の戻り値
- 3/13 - 紙と Excel と VBA
- 3/9 - 未だに Visual Basic 6
- 11/14 - ぼて閉鎖
- 11/9 - 関数オブジェクトの呼び出し
- 9/7 - メソッドとしての関数オブジェクト
Entering Passive Mode
原因が分かったところで、テストをしてみた。
FTP は行指向の通信なので、TELNET などでテストする。
FFFTP などを使ってもいいかも。
LAN 内 FTP サーバをルータの静的 NAPT 機能を利用して、
WAN 側に公開する。そして外から接続する。
> telnet <server> <port>
220 Microsoft FTP Service
USER <user>
331 Password required for <user>.
PASS <password>
230 User <user> logged in.
PASV
227 Entering Passive Mode (192,168,0,77,5,55)
昨日の続き。
ルータを交換するのは無理そうだ。
FTP が単純な NAPT で通らない理由は、
通信内容に IP アドレスとポート番号が含まれるから。
ネットワークは層の概念がある。郵便物に例えてみよう。
FTP での通信内容を便箋に書いて相手に送るとき、
下位層は「封筒」というヘッダをつけてカプセル化する。
封筒には名前や住所が書いてある。IP/Port やね。
LAN 内サーバを外部に公開する場合、
対応ゲートウェイで静的 NAPT を仕込むのが一般的。
さて自分の自宅でこれをやろうとした。
HTTP/FTP を公開しようと思ったが、
うちは ADSL でルータがレンタル品。
ついてる機能は、NAPT のみ。
要は上位層のプロトコルは感知しない。
HTTP はブラックボックスとして問題ないんだけど、
FTP はだめだ。PORT や PASV が通らない。
さてどうしよう。金はかけたくない。