virtualboxのNATでもローカルマシンからのFTPは可能である
virtualboxには下記のような種類のネットワークを構成できる。
〇NAT
〇NAT Service
〇Bridged networking
〇Internal networking
〇Host-only networking
それぞれのネットワークの構成は下記の通りである(+は接続可能、-は接続不可)。
上記の中のNATはデフォルトで設定されるネットワークであるが、「ローカルマシンから仮想マシンへのFTP接続は不可となっているため、FTP通信を行うためにはHost-only networkingやBridged networkingを使わなければならない」という誤った解説をしている記事が大量に存在する。
したがって、本記事ではvirtualboxのNATでもローカルマシンからのFTPは可能であることを解説する。
結論から述べると、ローカルマシンから仮想マシンへのFTPはアクティブモードでは可能であるが、パッシブモードでは不可である。
仮想マシン側へ設定が必要なのは、下記の通りローカルマシン発の通信に対するポートフォワーディングのみである(仮想マシン発の通信はポートフォワーディングのルール設定は不要であるというのがvirtualboxのNATの本質である)。
以下で上記の事象を検証する。
まず検証用に仮想マシン上にtest.txtやa.txtを作成しておく。
そして、ローカルマシンのWSL上からFTP接続を実施する。
172.26.192.1というのは、WLSネットワークのローカルマシンそのものを表している。
なおパッシブモードで接続するとFTPサーバ側、すなわち仮想マシンからデータ転送用ポートとIPが通知されるため、ローカルマシンに仮想マシンの実IPが通知されてしまう。
したがって、ローカルマシンには見えないIPアドレスに対してアクセスを行おうとするため、パッシブモードでは下記の通り拒否されてしまうのである。
なお扱いやすさという観点ではHost-only networkingが上回るため、上記の仕組みを理解した上でHost-only networkingを作成するのがベストと考えている。