Это, вероятно, потому что такие вещи, как
InetAddress.getLocalHost();
получить имя хоста, а затем найти IP-адрес от него. Если ваш vm разрешает это имя хоста на localhost, вы получите 127.0.0.1. Это вероятно то, что происходит. Вам необходимо получить IP-адрес от интерфейса внешней сети.
Попробуйте запустить это:
Enumeration netInterfaces=NetworkInterface.getNetworkInterfaces();
while(netInterfaces.hasMoreElements()){
NetworkInterface ni=(NetworkInterface)netInterfaces.nextElement();
InetAddress ip=(InetAddress) ni.getInetAddresses().nextElement();
System.out.println(ni.getName()+" "+ip.getAddress());
}