私はIIS 2つのサイトを実行しています+ IIS仮想フォルダー(w3root)をwin 2k3サーバー上に持っています。FTPトラフィックをピギーバックする方法があるかどうか疑問に思いましたftpサーバーのポート80を使用してそのパイプ。
どうすればこれを実行し、Webを中断することなく実行し続けることができますか?
いいえ、同じIPアドレスの同じTCPポートでHTTPとFTPを実行することはできません。ポート80を介してWebサーバーにファイルをアップロードする方法を探している場合は WebDAV はオプションかもしれません。
WebDAVをIIS Server 2003で で使用するためのチュートリアル)に興味があるかもしれません。
セキュリティを忘れないでください! FTPは古くて安全でないプロトコルであり、匿名のダウンロードを除いて、パブリックインターネット上で使用してはなりません。 FTPは、ユーザー名/パスワードとデータの両方をプレーンテキストで送信します。 SFTPとFTPSは妥当な代替手段です。
常にSSLを使用できない場合は、 Digest Authentication を有効にすると、WebDAVログインパスワードがプレーンテキストで送信されなくなります。
HTTPサーバーでディレクトリを提供することができます。
また、squidプロキシを使用してhttpサーバーにいくつかのリクエストを送信したり、ftpサーバーに要求できる他の(http)リクエストを送信したりできます。
ただし、原則として、1つのポートに2つのプログラムを配置することはできません。
FTPバインディング をサイトに追加することもできます。ポート80では実行されませんが、同じコンテンツフォルダーに対してFTPを使用できます。
ポート統合を使用して、同じポートで2つのプロトコルをバインドできます。ただし、 sslh と同様の方法で、そのポートをリッスンする独自のアプリケーションを作成する必要があります。
基本的に、このアプリケーションはポート80でリッスンし、取得内容に応じて要求をディスパッチします。 HTTPはクライアントが最初に通信するプロトコルであり、FTPはサーバーが最初に通信するプロトコルであるため、クライアントがHTTP要求を送信したかどうかを確認するにはxミリ秒待機する必要があります。その場合は、実際のHTTPサーバー(おそらく別のポートで効果的に実行されている)にディスパッチします。そうでない場合は、FTPサーバーに接続をディスパッチします。
原則として、クライアントが最初に話し、要求を見てどのプロトコルが使用されているかを検出しようとする複数のプロトコルを持つことができます。サーバーが最初に通信するプロトコルを複数持つことはできません。
これは明らかにこの問題に対処する「クリーンな」方法ではありません。ほとんどの場合、ネットワークを制御できず、誰かが使用できるポートに(おそらく任意に)制限を課している環境で役立つ可能性のある回避策です。それ以外の場合は、各プロトコルの公式ポートに固執することをお勧めします。 HTTPの使用が制限されている場合、WebDAVはFTPの合理的な代替手段になります。