How to do ADB over 'wifi' (actually in the same PC) for emulated device
I forgot that adb daemon binds to localhost, and I was trying to access from 192.168.122.x.

With socat I was able to redirect the ADB client from my VM to the ADB daemon on my host machine which made connection with the ADB server (my emulated phone).

My host machine was reachable at 192.168.122.1 from the virtual machine, but the adb daemon was binding to 127.0.0.1 or localhost. I just did:

#on host machine:
socat tcp-listen:5037,bind=192.168.122.1,reuseaddr,fork tcp:localhost:5037

#on virtual machine:
socat tcp-listen:5037,bind=localhost,reuseaddr,fork tcp:192.168.122.1:5037


Make sure you kill the adb server on the virtual machine doing /path/to/android/sdk/platform-tools/adb kill-server. ADB server always tries to bind on 5037 if there's nothing there, so if socat is already running on both sides and the adb server is running on the host machie, when you launch android studio on the VM, it'll automatically connect to the outside adb server, which will connect to your emulated phone. 

You don't need Android Studio on the virtual machine to test. You can just do  /path/to/android/sdk/platform-tools/adb devices on the virtual machine to see if socat will redirect it to the adb daemon on host, which will list the emulated phone.