IISを設定して、複数のFTPサイトを作成しました。ここにある手順を使用します https://docs.Microsoft.com/en-us/iis/publish/using- the-ftp-service/using-ftp-virtual-Host-names-in-iis-7
以下で私が最終的に構成したものを参照してください。
IISで基本認証を構成し、「接続方法」にユーザーmysite_ftpを使用しています。設定をテストすると、認証と承認の両方に緑色のチェックマークが表示されます。
Filezillaを使用して接続しようとすると、次のログが表示されます。
VPSホスト名で試してみました:h2746286.stratoserver.net
Status: Resolving address of h2746286.stratoserver.net
Status: Connecting to 85.214.200.30:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Command: USER tv_ftp
Response: 331 Valid hostname is expected.
Command: PASS ***********
Response: 503 Login with USER first.
Error: Critical error: Could not connect to server
ホスト名で試してみました:www.telefonievergelijken.nl
Status: Resolving address of www.telefonievergelijken.nl
Status: Connecting to 85.214.200.30:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Command: USER tv_ftp
Response: 331 Valid hostname is expected.
Command: PASS ***********
Response: 503 Login with USER first.
Error: Critical error: Could not connect to server
ホスト名で試した:ftp.telefonievergelijken.nl
Status: Resolving address of ftp.telefonievergelijken.nl
Status: Connecting to 85.214.200.30:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Command: USER tv_ftp
Response: 331 Valid hostname is expected.
Command: PASS ***********
Response: 503 Login with USER first.
Error: Critical error: Could not connect to server
applicationHost.config
<sectionGroup name="system.ftpServer">
<section name="log" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
<section name="firewallSupport" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
<section name="caching" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
<section name="providerDefinitions" overrideModeDefault="Deny" />
<sectionGroup name="security">
<section name="ipSecurity" overrideModeDefault="Deny" />
<section name="requestFiltering" overrideModeDefault="Deny" />
<section name="authorization" overrideModeDefault="Deny" />
<section name="authentication" overrideModeDefault="Deny" />
</sectionGroup>
<section name="serverRuntime" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
</sectionGroup>
<sites>
<site name="othersite" id="2">
<application path="/" applicationPool=".NET v4.5">
<virtualDirectory path="/" physicalPath="E:\othersite\wwwroot" userName="othersite_web" password="[enc:IISCngProvider:b1dn9+We00KRNWUB6shbPm/hLtBOF2hOG9We5zVgaEmYL5C/fDLxDc3QH9Rnvi79SjeM+Rauk/bQWEBzJnw=:enc]" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:www.othersite.nl" />
<binding protocol="http" bindingInformation="*:80:othersite.nl" />
</bindings>
</site>
<site name="telefonievergelijken" id="3">
<application path="/" applicationPool=".NET v4.5">
<virtualDirectory path="/" physicalPath="E:\telefonievergelijken\wwwroot" userName="tv_web" password="[enc:IISCngProvider:x+PhGwZweUwR53tUgGTdEGui8k4gIJRASehxKVtsPoTtxNIA8aRe8WUwvdLuEdzSQicrJVDwen7e/C6x9qfiFyudqtZYwhXuo=:enc]" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:www.telefonievergelijken.nl" />
<binding protocol="http" bindingInformation="*:80:telefonievergelijken.nl" />
</bindings>
<traceFailedRequestsLogging enabled="true" directory="E:\IISData\LogFiles\FailedReqLogFiles" />
</site>
<site name="FTP-othersite" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="E:\othersite\wwwroot" />
</application>
<bindings>
<binding protocol="ftp" bindingInformation="127.0.0.1:21:" />
</bindings>
<ftpServer>
<security>
<ssl controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
<authentication>
<basicAuthentication enabled="true" />
</authentication>
</security>
</ftpServer>
</site>
<site name="FTP-TV" id="4">
<application path="/">
<virtualDirectory path="/" physicalPath="E:\telefonievergelijken\wwwroot" userName="tv_ftp" password="[enc:IISCngProvider:xYxqamuKq02/xUcvZGTdEGui8gh3w6XT0hEegnCMZbVIxeWIOypRIZ1u8UAOG/AJg=:enc]" />
</application>
<bindings>
<binding protocol="ftp" bindingInformation="127.0.0.1:21:www.telefonievergelijken.nl" />
</bindings>
<ftpServer>
<security>
<ssl controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
<authentication>
<basicAuthentication enabled="true" />
</authentication>
</security>
</ftpServer>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="E:\IISData\LogFiles" />
<traceFailedRequestsLogging directory="E:\IISData\LogFiles\FailedReqLogFiles" />
<ftpServer>
<logFile directory="E:\IISData\LogFiles\FTPLogs" />
<security>
<authentication>
<basicAuthentication enabled="false" />
</authentication>
</security>
</ftpServer>
</siteDefaults>
<applicationDefaults applicationPool="DefaultAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
UPDATE 1
ああ、127.0.0.1のIPアドレスをVPSの外部IPアドレスに変更しました。 ftp.telefonievergelijken.nl|tv_ftp
で接続しようとすると、ロギングエラーが発生します。
Error: Could not connect to server
Status: Waiting to retry...
Status: Resolving address of ftp.telefonievergelijken.nl|tv_ftp
Status: Connection attempt failed with "EAI_NONAME - Neither nodename nor servname provided, or not known".
更新2
IIS内のFTPサイトへのバインディングで現在構成されていないホスト名を使用してFTPサイトに接続しようとしているようです。
これは、含まれているFilezillaからのエラー出力にのみ基づいています。出力からホスト名を(例の形式でも)検閲したので、これ以上続けることはありません。
FTPサイトへの接続に使用しているホスト名と一致するバインディングをFTPサイトに構成する必要があります(Filezillaからであろうと、他のFTPクライアントからであろうと)。
編集:更新された投稿情報から、FTPサイトのバインディングが実際に正しく構成されていないことがわかりました。現在、FTPサイトはlocalhostループバックアドレス(127.0.0.1)にのみバインドされています。外部にルーティング可能な非ループバックアドレスにバインドする必要があります。環境に応じて、これは外部IPアドレス(サーバーに直接マップされている場合)または内部IPアドレス(NATが構成されている場合)のいずれかになります。現在の情報では、これらのリクエストをインターセプトし、無効なホスト名エラーを表示する別のFTPサイトを設定する必要があります。このFTPサイトを正しく設定すると、すべてが意図したとおりに機能するはずです。
さらに、@ Dreの回答も重要です(そのため、賛成する必要もあります)-複数のFTPサイトが同じIPアドレスにバインドされている場合は、FTPクライアントの「user」フィールドにホスト名を指定する必要があります。形式hostname|user
この方法で設定する場合、正しい仮想ホスト名とユーザー名の両方をFTPクライアントからユーザー名で送信する必要があります。サイト名とユーザーを縦線記号で区切ってください:|
www.example.com|MyUser
したがって、FTPクライアントで、これをユーザー名に使用します。
ftp.telefonievergelijken.nl|tv_ftp
ポート21(または使用している任意のポート)で複数のホストをホストしていない場合は、IIS設定の下でバインディングを削除することもできます。つまり、 "サイトバインディング」>>「サイトバインディングの編集」。関連する権限としてアプリプールを提供すれば、その後は機能するはずです。