web-dev-qa-db-ja.com

Windows 2008 Server R2x64を実行しているVirtualBoxゲストへのFTPファイルアクセスに関する問題

私はOSX10.11を使用しており、Windows 2008 Server R2 x64を実行しているVirtualBoxゲスト(NATネットワーキング)を実行中)IIS、ポート21でFTPを使用)を使用しています。

私の問題は:ホストからFTPにログインできますが、ディレクトリリストを表示したりファイルを取得したりできません。

FTPは このようにインストールされました そしてポート21を介してTCPを許可するWindowsファイアウォールエントリがあります。

ゲストのポート21は、ホストのポート8021に転送されます。 FTPでゲストへのログインは成功しましたが、FTPを使用してファイルを表示できません。

ホスト上:FTPへのコマンドラインを使用すると、次のようになります。

$ ftp localhost 8021
Trying ::1...
ftp: Can't connect to `::1': Connection refused
Trying fe80::1%lo0...
ftp: Can't connect to `fe80::1%lo0': Connection refused
Trying 127.0.0.1...
Connected to localhost.
Name (localhost:david): Administrator
331 Password required for Administrator.
Password: ****
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
229 Entering Extended Passive Mode (|||49170|)
ftp: Can't connect to `127.0.0.1': Connection refused
501 Server cannot accept argument.
150 Opening ASCII mode data connection.
ftp: Poll timeout waiting before accept
425 Cannot open data connection.


^C
421 Service not available, user interrupt. Connection closed.
ftp> quit

Transmit to FTPを使用すると、エラーメッセージは次のようになります。

「/」のファイルリストを取得できませんでした。サーバーによると:サーバーは引数を受け入れることができません。

エラー-162:ポートに失敗しました

ゲストの場合:コマンドラインFTPは正常に機能します...

C:\Users\Administrator>ftp localhost
Connected to XXX.
220-Microsoft FTP Service
User (XXX:(none)): Administrator
331 Password required for Administrator.
Password: *****
230 User logged in.
ftp> dir
200 EPRT command successful.
125 Data connection already open; Transfer starting.
06-22-16  10:42AM       <DIR>          contracts
05-25-16  02:35PM               184946 welcome.png
226 Transfer complete.
ftp: 356 bytes received in 0.00Seconds 356000.00Kbytes/sec.
ftp>

私が見逃した明らかなものはありますか? FTPを機能させるには、次のどの手順を実行する必要がありますか?

1
dvdsmpsn

OK、私はこれを理解しました。 I 有効IISパッシブモードで動作する

WindowsゲストVMの場合:

  1. [スタート]をクリックして、[管理ツール]-> [インターネットインフォメーションサービス(IIS)マネージャー]に移動します。
  2. IISサーバーの一般設定ページを選択します。
  3. FTPファイアウォールサポート機能を開き、パッシブモードのポート範囲(追加8020-8020)を追加して、[適用]をクリックします

ホスト上:

  1. VirtualBoxで、仮想マシンを選択し、ネットワークに移動します
  2. 追加のFTPパッシブモードポートのポート転送を追加します。ゲストのポート8020からホストのポート8020に転送します。
  3. 仮想マシンを再起動します。

ホストからFTPを使用すると、次の結果が得られます。

$ ftp localhost 8021
Trying ::1...
ftp: Can't connect to `::1': Connection refused
Trying 127.0.0.1...
Connected to localhost.
220-Microsoft FTP Service
Name (localhost:david): Administrator
331 Password required for Administrator.
Password: ****
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
229 Entering Extended Passive Mode (|||8020|)
125 Data connection already open; Transfer starting.
06-22-16  10:42AM       <DIR>          contracts
05-25-16  02:35PM               184946 welcome.png
226 Transfer complete.
1
dvdsmpsn

VirtualBox 6.0.0(2018年12月18日リリース)以降、VirtualBoxはホストとゲストOS間のドラッグアンドドロップをサポートするようになりました。

インストールして使用しました。 Guest Additionsパッケージをインストールする必要はありますが、これは非常にうまく機能します。これは厄介な悪夢になる可能性があります。作業中のDebianイメージを取得できませんでした。なんとかうぶぬつをスムーズに進めることができました。 Guest Additionsをインストールした後、ゲストを再起動する必要がありました。

次に、「ボブはあなたのおじさんです!」

0
kiltannen

編集済み(要求に応じて):

@ dvdsmpsnの答え(実際には彼自身の質問に対する答え)はとても良いですが、私にとっては完全には機能しませんでした。 Windows 7ホストUbuntu 16.04ゲストを使用しています。システムは異なりますが、問題は同じでした。

私のように、さまざまな条件の人が接続を機能させることができない場合があります。

私もそれらの答えからの知識を使わなければなりませんでした:

https://serverfault.com/questions/421161/how-to-configure-vsftpd-to-work-with-passive-mode

@ brain99pasv_address=xxx.xxx.xxx.xxxに関する観察は非常に重要でした。それなしではうまくいきませんでした。

Ubuntuサーバー(ゲストVM):

私のUbuntuサーバーにはFTPサーバーとしてvsftpdがあります。パッシブモードで動作させるには、最後にこれを追加する必要がありました。私のvsftpd.confの(/ etcフォルダー内-ウィンドウマネージャーを使用している場合は検索機能を使用できます):

pasv_enable=YES
pasv_min_port=8020 # like @dvdsmpsn recommended
pasv_max_port=8020 # like @dvdsmpsn recommended
pasv_address=127.0.0.1 # added like @brian99 recommended, BUT I used the localhost address.

仮想マシンにパブリックIPアドレスがないため、ローカルホストアドレスを使用しました。

テストのためだけに、UFW(ファイアウォール)を無効にしました。すでに複雑な問題をさらに悪化させるものは何も望んでいませんでした。

ユーザー@ Martin Prikrylが彼の答えで指摘しているように:

FileZilla FTPサーバーへの接続は機能しますが、ディレクトリリストは失敗します

FTPは2つのポートを使用します。したがって、VirtualBoxで2つのポートをポートフォワードします。

Windows 7(ホスト):

FTPサーバーをパッシブモードで動作させた後、@ dvdsmpsnの指示に従いました。

  1. VirtualBoxで> VM設定> NAT>詳細>ポートフォワーディング> 2つのエントリを追加しました:

    Host Port 8021 to Guest Port 21 Host Port 8020 to Guest Port 8020

  2. VMを再起動します

このセットアップをFileZillaとDreamweaverでテストしました。どちらのアプリケーションでも、パッシブモードで問題なく動作しました。

残念ながら、言及されている参照は、ユーザーについてchrootについては何も述べていません。私のUbuntuゲストはApacheWebサーバーを実行しており、それらを独自の/home/$userディレクトリにジェイルする必要があります。

0