none
Hyper-V環境上の仮想FTPサーバにアップロードできない RRS feed

  • 質問

  • Windows 8.1 Pro のHyper-V環境で、FTPサーバ機能を持たせたCentOSを仮想マシンとしてインストールしましたが、この仮想マシンへのファイルアップロードに失敗します。

    pingは応答があり、サーバへのアクセスはできているのですが、FTPでのアップロードだけが使用できない状態です。

    確認したところ、仮想マシン側ではFTPの通信を受けた形跡が無く、ホストが通信を遮断していそうです。

    この仮想マシンをVMware Player 上で起動させていた時はFTPでのアップロードもできていましたが、Hyper-Vのデフォルト状態では仮想スイッチ等の設定で一部通信を遮断しているのでしょうか?

    もしくはWindows OS のファイアウォール等が影響するのでしょうか?

    原因や解決方法をご存じの方がおられましたら、お教えいただきたく、宜しくお願いいたします。

    ●ネットワーク環境

     ・有線LANで接続し、全ての機器で静的IPを与える。

     ・外部に接続しない閉じたネットワーク環境で使用。

     ・仮想スイッチは「外部」で管理サーバ(ホストPC)も共有で接続しています。

    ●OSは、Windows 8.1 Pro で、Windows Update を2014年11月分まで実施の上、Hyper-V機能をオン。

    2014年11月25日 5:21

すべての返信

  • 設定次第ですが、Windowsファイアウォールの設定が影響している可能性が考えられます。

    まず原因の切り分けのため、一時的にWindowsファイアウォールをOFFにして接続可否を確認してみてください。

    #PCがドメインに参加していない場合、デフォルトではルールがもっとも厳しい「ゲストまたはパブリックネットワーク」

     になっていると思います

    2015年1月11日 8:53
  • Hyper-V VMのネットワークアダプターのACLは既定でFTPの通信を拒否することはありません。記載頂いている環境において、既定でFTPの通信を拒否するのはCentOSのファイアウォールのみだと思います。

    CentOS7のファイアウォールを操作するには、firewall-cmdコマンドを利用します。まずはファイアウォールの状態を確認してください。CentOSにログインして下記のコマンドを実行してください。

    [root@CentOS7 ~]# firewall-cmd --list-all
    public (default, active)
      interfaces: eth0
      sources:
      services: dhcpv6-client ssh
      ports:
      masquerade: no
      forward-ports:
      icmp-blocks:
      rich rules:

    既定では services に ftpが追加されていません。servicesにftpを追加されているか、もしくはportsにftp通信で利用するポートが追加されていない限りFTP通信は許可されません。

    ファイアウォールのservicesにftpを追加し、適切に追加されていることを確認します。

    [root@CentOS7 ~]# firewall-cmd --add-service=ftp
    success
    [root@CentOS7 ~]# firewall-cmd --list-all
    public (default, active)
      interfaces: eth0
      sources:
      services: dhcpv6-client ftp ssh
      ports:
      masquerade: no
      forward-ports:
      icmp-blocks:
      rich rules:

    CentOS側のファイアウォールでFTPを許可しているのにも関わらず通信できない場合にはHyper-V上のCentOS VMにACLがかけられていないかどうかを確認します。こちらはHyper-Vホスト上もしくはホストをリモート管理できるクライアントからPowerShellを利用して確認する手順です。

    PS C:\Users\UserName> Get-VM -ComputerName MyHost -Name CentOS7 | Get-VMNetworkAdapterAcl
    
    
    VMName: CentOS7
    VMId: <id>
    AdapterName: ネットワーク アダプター
    AdapterId: Microsoft:<id>
    
    Direction    Address                                                  Action
    ---------    -------                                                  ------
    Inbound      Remote 0.0.0.0/0                                         Meter ( Mbytes)
    Inbound      Remote ::/0                                              Meter ( Mbytes)
    Outbound     Remote 0.0.0.0/0                                         Meter ( Mbytes)
    Outbound     Remote ::/0                                              Meter ( Mbytes)

    2015年1月12日 5:09