VMware FusionをmacOS(ホスト)で実行しており、1 VM Windows 10をゲストとして使用しています。ネットワークは共有(つまりNAT)に設定されています。
Windows 10VMで実行されているWebサーバーにポート8888で接続したいと思います。
/Library/Preferences/VMware\ Fusion/vmnet8/dhcp.conf
を編集して以下を追加することにより、VM固定IPアドレスを指定しました。
Host Windows8x64 {
hardware ethernet 00:0C:29:86:EB:52;
fixed-address 192.168.80.101;
}
次に、/Library/Preferences/VMware\ Fusion/vmnet8/nat.conf
を編集して、以下を追加しました。
[incomingtcp]
9888 = 192.168.80.101:8888
次のコマンドを使用してVMwareネットワークを再起動しました。
Sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop
Sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start
Windows VMで、DHCPを使用してネットワークアドレスを更新し、固定アドレス(DHCPリースの範囲外)を受信したことを確認しました。
Windowsのすべてのファイアウォールが無効になり、ネットワークの場所がすべてプライベートに設定されました。
telnet 192.168.80.1 9888
を試して、ホストOSからクライアントマシンに接続できるかどうかを確認すると、接続が確立されるか、拒否されるか、最終的にタイムアウトになると予想されます。テストするために、クライアント(ncat -4 -l -t -v 192.168.80.101 8888
)で ncat
を実行しています。
これは、telnetコマンドの出力です。
telnet 192.168.80.1 9888
Trying 192.168.80.1...
Connected to 192.168.80.1.
Escape character is '^]'.
そしてしばらくして...
Connection closed by foreign Host.
つまり、接続は確立されましたが、奇妙なことに、Windowsクライアントでアクティビティがまったく表示されません。ホスト上の他のすべてのネットワークを無効にして、VMwareネットワークに接続していることを確認しました。
VMwareネットワークが(再)起動されるたびに、ログファイル/var/log/vnetlib
でこれを見つけました。
VNLNetCfgLookupNATPortFwd - List of NAT forwarded ports is empty
VNLNATReadPortForward - Failed to read TCP port forward config info.
VNL_StartService - Started "NAT" service for vnet: vmnet8
/Library/Preferences/VMware\ Fusion/vmnet8/networking
で、次の(自動生成された)行を見つけました。これは、ポート転送の構成変更が正しく読み取られたように見えることを示しています。
add_nat_portfwd 8 tcp 9888 192.168.80.101 8888
この時点で、私は途方に暮れています。
バージョン情報
[〜#〜] tldr [〜#〜]
「Something」はマップされたポートへの接続を受け入れていますが、すべてのファイアウォールが無効になっているにもかかわらず、トラフィックがゲストVMに到達していません。
ポート転送と固定IP割り当ては正しいようですが、ログファイルはエラーを示しています。
更新
@JensEhrichの推奨に従って、別のVM(今回はmacOS)を追加し、MacVM> WinVMから接続しようとしました。運が悪かったので、接続できませんでした。WinVMのファイアウォールのようです。着信パッケージをサイレントにドロップしています。
MacVMにnetcatをセットアップし、ホストとWinVMの両方から接続しようとしました。そのゲストにポートマッピングを設定しなくても、両方とも機能しました(仮想NIC NATの一部であるホストでは、ポートマッピングは、ホスト自体ではなく、ホストのネットワーク上の着信トラフィックにのみ必要です)。
したがって、VMware NATに障害はないようですが、ファイアウォールが完全に無効になっている場合でも、WinVMは着信接続をブロックしています。ただし、ファイアウォールをオンにした後でも、着信接続を許可してからファイアウォールを再びオフにしても、問題は残りました。
結局、この問題はVMwareとは何の関係もないことが判明しました。実際、ホストマシンからゲストに接続するために、ポートマッピングはまったく必要ありませんでした(ホストには同じ仮想NATの一部である仮想ネットワークアダプターがあるため)。
インバウンドトラフィックがゲストVMに到達するのを妨げた問題は、ゲストで実行されているVPNクライアントでした。これは、独自のファイアウォールをアクティブにして着信ネットワークトラフィックを防止することにより、VPNエンドポイントを保護しようとします。