Did you properly configure the htpd service on the target VM/server? If you used a standard network connection (least amount of modifications possible) on the virtual network side, then I don't see it being an issue with ESXi. I'm actually running a web server and ftp server in my lab (one each). I split the two apart so that I didn't need to worry about either one using the space allocated for the other. Plus, I wanted clear seperation of the services.
Have you tried using the vsftpd client for ftp traffic instead of the proftpd? I use the vsftpd on my VM and it has never been an issue connecting. I've also set up production ftp (CentOS 5.x Linux) servers using the vsftpd and setting it up to be secure without issue.
For external traffic, you'll need to make sure the firewall is allowing that target port to forward to the IP of the server. This is another reason why I split the two services to two different VM's... Are you having trouble connecting to the web side or the ftp side of the server? Make sure your firewalls are set to allow traffic in both directions on the ports being used for ftp and web traffic. Try making a two new VM's with ftp on one, and web on the other. completely configure the services (edit the conf files for each) to fit your network. If you don't do that, I see that as being the issue. Also make sure the networking from within the VM's actually can get out to the web. IF they can, then that just confirms that it's a configuration of the guest OS that needs to be corrected. Not anything with ESX/ESXi...
VMware VCP4
Consider awarding points for "helpful" and/or "correct" answers.