FTPサーバーのポート転送ができない

FTPサーバーのポート転送ができない

私は ZTE mf283+ ルーターと、それに接続してアクセス ポイントとして使用する別の tp-link archer c7 ルーターを持っています。tp-link の IP アドレスは 192.168.0.23 で、そこに ftp サーバーを設定しています。外部から ftp サーバーにアクセスできるようにポート転送を試しました。 ここに画像の説明を入力してください

しかし、次のように外部からアクセスしようとすると:ftp://37.xxx.xxx.xxx:21「このサイトにアクセスできません。37.xxx.xxx.xxx は接続を拒否しました。」と表示されます。私の操作が間違っているのでしょうか、それとも ISP に問題があるのでしょうか?

答え1

アティーが紹介した記事を読んでいただきありがとうございます。もう少し説明が必要かもしれませんね。OpenBSD のファイアウォール ガイド、「FTP の問題」のセクション参考になるかもしれませんが、ここで問題を要約してみたいと思います。

ソフトウェアがインターネット プロトコル (IPv4 または IPv6) を使用して通信する場合、「IP プロトコル」(ここでは IPv6 と IPv4 の両方に適用される一般的な用語として使用しています) には宛先 IP アドレスが含まれます。TCP (FTP が使用)、UDP (DNS が使用)、SCTP などのプロトコルを使用する場合、「ポート番号」も使用されます。これが、「ポート転送」という用語を使用する理由の 1 つです。(一部のプロトコルでは「ポート番号」は使用されません。たとえば、ICMP は IP を使用し、「メッセージ タイプ」はありますが、「ポート番号」はありません。)

ほとんどのソフトウェアは、ローカル コンピュータの TCP/IP ネットワーク コンポーネントに IP アドレス情報を提供し、リモート コンピュータには「ペイロード」(リモート コンピュータが受信する必要のあるその他の情報) のみを提供します。たとえば、HTTP の場合、Web ブラウザはローカル TCP/IP ネットワーク スタックに IP アドレスへの接続を開くように指示し、Web ブラウザはリモート システムに受信するファイルを指示します。Web ブラウザは IP アドレスを通知しません。その詳細は TCP/IP ネットワーク コンポーネントによって処理されます。

FTP はほとんどのソフトウェアとは異なります。

FTP は実際にそのペイロードに IP アドレスを含めます。したがって、標準 IP パケットの一部として IP アドレスを提供することに加えて、FTP 会話の一部には使用する IP アドレスが記述されます。標準の「ポート転送」は IP アドレスの標準の場所を変更するだけで、FTP 会話は変更しません。

FTP は非常に古いプロトコルで、大学や大企業が研究プロジェクトとしてネットワークを構築していた時代に作成されました。当時はファイアウォールなどのインターネット防御は存在せず、必要もありませんでした。そのため、FTP がもたらす問題は、作成者の不備によるものではありません。問題は、FTP が単に異なるスタイルのネットワーク向けに設計されたことにあります。

この問題は、次の 3 つの方法で回避できます。

  • 「パッシブ」FTP の使用を試みることができます。これは、ファイアウォールの背後にある FTP サーバーで機能します (ただし、負担が移行されます。FTP クライアントはファイアウォールの背後にある必要はありません... そのため、このシナリオもうまく機能しないことがよくあります)。この修正が可能な場合 (FTP クライアント ソフトウェアがこの機能をサポートしている必要があります)、これが最も迅速な修正 (FTP クライアント ソフトウェアの設定の変更) になりますが、使用する FTP クライアント ソフトウェアによっては簡単または難しい場合があります。
  • 多くのルーターは「ftp proxy」と呼ばれるオプションをサポートしており、FTP 通信を変更してこの問題を効果的に解決します。そのようなオプションを探して有効にします (存在する場合)
  • 同じ問題がない別のプロトコルを使用する

FTP は、ある意味ユニークです。現在普及しているプロトコルのほとんどは、同じ問題を抱えていませんし、今後も抱えることはありません。なぜなら、ファイアウォールは既に存在し、人々はその問題を認識しているからです。(誰かが新しいプロトコルを作成し、その人が問題を認識していなかった場合、そのプロトコルが広く普及する前に、おそらく問題に気付くでしょう。) しかし、FTP はかつては最善のソリューションであり、人々は他のソリューションの使用を躊躇していました。その主な理由の 1 つは、多くの人が FTP ソフトウェア (FTP をサポートする一般的な Web ブラウザーを含む) を持っていたことです。

現在では、FTP よりも優れたソリューションが利用可能です。「SSH ファイル転送プロトコル」(「SFTP」と呼ばれるプロトコルの 1 つ)、SCP、または HTTPS を使用します。これらのいずれも、ファイアウォールで実行するために特別なプロキシを必要としません。複数の顧客が簡単に利用できる必要があるソリューションの場合、HTTPS で十分です。(FTPS などの他のオプションもあるかもしれませんが、私は先ほど述べたプロトコルをお勧めします。)

したがって、最後の箇条書きが推奨されますが、何らかの理由でそれができないと思われる場合は、最初の箇条書きまたは 2 番目の箇条書きを試してみてください (それぞれ、対処している問題に対する、より速い (ただし、より劣る) 解決策になる可能性があります)。

関連情報