For those who need it and future myself. So you got a shiny new server with ESXi and want to upload your *.vmdk or *.iso.
1) Use ESXi Host Client / scp and get disappointed. I got it to hang dead on web UI after 3 hours of upload, and max about 1.6 MB/s with scp.
2) Solution? Server your files with http server, and make your ESXi download them with wget, I got about 40MB/s with my setup using self-signed SSL + nginx at a home server, and downloading it directly to vmfs datastore.
$ ssh ... # login via ssh
$ esxcli network firewall set --enabled false # Disable firewall, optional, use if wget hangs dead instead of downloading
$ wget --no-check-certificate -O /vmfs/volumes/datastore1/whatever.vmdk https://your_home_server/path_to/whatever.vmdk
$ esxcli network firewall set --enabled true
Some thoughts, I really think VMWare is acting ignorant and probably forcing users to use all of their ecosystem with move/backup, etc. features, and explicitly made web ui/scp dead for large file transfers. According to my search, this problem existed back in 2012 and till now, without any official answer from VMWare, this is clearly some sort of non-consumer-friendly strategy that we have to swallow.