アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、FTPデータ通信ポート20番を利用したデータの流れを確認したく、WindowsDosプロンプトでFTPを行った所、データ通信ポートが20以外を利用しておりました。(Etherealで確認したら3000番台を利用)

実際には、FTP通信は20番がデータ通信用、21番が制御用ポートと学習しておりました。

データ通信20番ポートを利用してFTP通信をしたいのですが、どのような方法があるのでしょうか。FTPサーバ側の問題なのでしょうか。

FTPサーバが問題だとすれば、上記実現するために、フリーのFTPサーバ(できればWindows)をご紹介頂けると幸いです。

お世話になりますが、宜しくお願い致します。

A 回答 (2件)

PASVモードを使用していたのではないですか?



通常だと、FTPのデータ通信様のコネクションはサーバ側から接続されます。
が、ルータ配下などNAT環境では外部からの接続は基本的にフィルタされます。
そのため、PASVモードを使用してクライアントからサーバ側へ接続することになります。
その際にサーバ側から接続ポートの指定があります。
クライアント側のポート番号は通常TCP/IPドライバが設定する(未使用のポートをランダムに…など)ので、プロトコル関係なく決定されます。

# ちなみに、ルータ配下にあるサーバでも開けていないポートの場合は弾かれます。
# ルータによってはFTPの制御用パケットを監視していてPASVモード時の接続を通してくれるものもあります。
    • good
    • 0

FTPの仕様ですね。



FTPデータポート20番、FTP制御ポート21番というのは、あくまで「FTPサーバ側」で使用するポート番号のことです。

確かに、FTPでは、データコネクションはサーバのほうから張りにきます。
しかし、それが可能なのは、事前に制御コネクション側で、クライアントからサーバに対して、「Active IP」と「Active Port」を通知しているからなんです。
サーバは、制御コネクション側でクライアントから通知された「Active IP」「Active Port」に対して、データコネクションを張りにきているんです。

# Ethereal でご確認しているのであれば、データコネクション接続前に
#  Request: Port xxx,xxx,xxx,xxx,xxx,xxx
# というような FTP のメッセージが見えると思います。
# これが、クライアントから Active IP と Active Port を通知している箇所になります。

ですので、クライアント側のデータポートを 20番にすることはできません。
クライアント側は Well-known Port をはずした番号が割り当てられることに…っと、このへんの話は問題なさそうですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!