Shintaro's Laboratory

SEの徒然日誌です。気ままに更新していきます。

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接続できていることがわかる。

なおパッシブモードで接続するとFTPサーバ側、すなわち仮想マシンからデータ転送用ポートとIPが通知されるため、ローカルマシンに仮想マシンの実IPが通知されてしまう。

 

したがって、ローカルマシンには見えないIPアドレスに対してアクセスを行おうとするため、パッシブモードでは下記の通り拒否されてしまうのである。

 

 

なお扱いやすさという観点ではHost-only networkingが上回るため、上記の仕組みを理解した上でHost-only networkingを作成するのがベストと考えている。