はじめまして。
最近、自宅サーバーの立ち上げに苦労している「もみお」と申します。
私もTinyFTPを利用してFTPサーバーを構築したのですが、
WAN側からpasvモードでのファイル授受が出来ない状態です。
portモードでは、問題なくファイルも見えますし、ファイルの転送、
受信も行えるのですが、pasvだと認証までは上手くいくのですが
ファイルが見えない状態です。
LAN内では、port、pasv共に問題なく動いております。
当方の環境は以下のとおりです。
os:WindowsXP Pro
ftpd:TinyFTP Deamon
ルーター:TE4111C
NATアドレス変換は、21と20と1024-64000をサーバーにあてております。
pasvでは、1024以上を使うらしいので....
多分原因はルーターの設定かと思うのですが、
う〜〜〜ん、この世界は悩みが多いですね。
今後も、おやじさんのHPを楽しみにしておりますので
がんばってください。
もみおさん。eA掲示板でも解決できませんね。
訳あっての徹夜明けですので、ボケていますが、思いつくまま。
PASVにこだわると言うことは、外部からアクセスするクライアント側のネットワーク環境がftpに未対応のNAT越えとかということだと思うのですが、それでいいのですよね。一般的にはportモードが使えるならそのままでいいはずですので。
結論からいうと、サーバ側がNAT・IPマスカレードではPASVは使えないというのが、おやじの認識です。下記にFTPについて詳しく書かれていますので、非常に参考になるでしょう。
http://www.rtpro.yamaha.co.jp/RT/FAQ/TCPIP/ftp-passive-mode.html
つまり、PASVは、portモードでクライアントから制御コネクションで送ったポート番号が、クライアント側でIPマスカレード等によって変わってしまい通信できなくなるのを回避するため、サーバ側が待ち受けるポート番号を通知し、クライアントからそのポートめがけて通信させることにより、この問題を回避するものです。従って、サーバ側にIPマスカレードがあるというこは、駄目になること(アドレスやポート変換)をサーバ側でやってしまっている訳です。この問題は、クライアント側をコマンドモードで扱うなら回避する方法があります。実験してみてください。少し面倒ですが、やりたいことは限られているでしょうから、慣れれば問題ないはずです。詳しくは、下記を参照ください。
http://sakaguch.com/FTPcmd.html
ここにあるように、現在の環境ですとpasvコマンドではinvalidになるはずです。quote pasvで入ってみてください。リストが表示されるはずです。実験してみてください。
もみおさんのクライアントを含めた環境がよくわからないので、どういう方法がベストかいえないのですが、eAの他スレにご自身が書かれているように一番手っ取り早いのは、GapNATと思います。しかし、今ですとTE4121Cに変える、すなわち8Mへのコース変更しかないと思います。距離問題を気にされていますが、最悪、TE4121Cは1.5Mモードに固定することもできますので、チャレンジしてみる価値はあるかもしれません。但し、ご自身のリスクで。設計が新しい分、DSPの設計もよくなっているとおやじは見ていますので、8Mでカチカチになってしまったら、1.5M固定にするしかありませんが、1.5Mにしても今よりは速度は若干でしょうが上がると思いますよ。
もうひとつの方法は、この問題を解決するには、PC(FTPサーバ)にグローバルアドレスが付与できればいいので、TE4111Cをブリッジモードに変更して、サーバにPPPoEソフト(1.5M時代に実験済み。フリーでRASPPPoEというソフトがあります)を入れる方法もあります。
アイデアはいろいろ考えられますが、もみおさんのやりたいことと、環境がわからないのでこれくらいにします。
是非、コマンドモードでの実験結果を教えて下さい。
もう目が開きませんので。この辺で。おやすみなさい。
おやじさん。
徹夜明けの所ありがとうございます。
色々参考になりました。
気になるGapNAT機能ですが、イーアクセス側で
TE4111Cも6月上旬頃に対応ファームウェアを
出すとのことなので、それを待ちたいと思います。
本当にありがとうございました。
もみおさん。それが正解かと思います。ただひとつGapNATで気になることがあります。おやじは既にGapNAT対応版にファームアップしてあるのですが、サーバの関係で実験できないのでなんともいえないのですが、サーバがグローバルアドレスになってしまうと、LANカードを増設しないと家庭内からアクセスできないのではということです。
物理的には1つのセグメントにつながっていますので、MACレベル(レイヤ2)では通信できますが、IPレベル(レイヤ3)ではルーティングできるところがありません。(絵がないのでわかりにくいかもしれませんが)
おやじなら、どうせLANカードの2枚刺しするなら、ブリッジモード+PPPoEでサーバを動かし、IPマスカレード(Windowsならインターネット接続共有)で家庭内と繋ぐ方法を動かすと思います。というより、Windowsサーバ初期のころに、メルコルータがなかったので、IPsecの関係でグローバルアドレスをパソコンで終端せざるを得ず、この方法で動かしていました。
おやじは、Apacheのセキュリティのあたりがまだ良くわかっていないのでやっていませんが、Web/DAVという手もありますよね。Windows版でもできたような気がします。(すいません。本件ははっきりしたことはいえませんが)これなら80番ポートしか使いませんので、NAT・Firewall越えでも簡単にファイルにアクセスできると思いますよ。チャレンジしてみませんか? とあおったりして・・・。
いずれにしても早く目的を達成できるといいですね。