I have a 12.04 Ubuntu server set up as a VM on an esxi host, and I have m0n0wall running as another VM as my firewall. I can't figure out how to use NAT to make the traffic that hits my public IP, get the information of the private IP of the server. Please let me know if you need anymore information, but I'm starting to get frustrated and just want this to work so I can switch servers. Thanks so much!
Your setup description is somewhat vague, perhaps this general overview of how I'd do things could help you.
Then just configure m0n0wall as you would normally for a router, and specify your NAT configuration as such. The two NICs would need to be different virtual networks, with the second network (without a physical nic assigned) using the "GREEN" IP of m0n0wall as the Gateway IP (if you want to have a VMkernel interface on GREEN).
You're effectively setting up a virtual WAN/LAN environment inside vSphere. If you have any questions about implementation just comment, I'm happy to help! I'm learning ESXi for work, personally, and I'm always burning through unusual scenarios in my home lab.