VirtualBox bridged adapter can ping but can't curl
Well, I figured out this by myself.
I by accident found that I can curl google.com
but cannot curl www.google.com
and since the first one is rather smaller, I think this is a problem with MTU or something, causing the guest OS being unable to transfer large segment of data.
After googling "virtual bridged mtu" I found this post: https://forums.virtualbox.org/viewtopic.php?f=7&t=30632&start=0
Then I tried ethtool -K eth2 sg off rx off tx off tso off
in the Ubuntu Server (eth2 is the bridged interface), and... it works like a charm! Instantly