Using localhost (not local loopback) in SurefireForkChannel.java
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java
index 3ca2dad..cf522e8 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java
@@ -84,7 +84,7 @@
         super( arguments );
         server = open( withThreadPool( THREAD_POOL ) );
         setTrueOptions( SO_REUSEADDR, TCP_NODELAY, SO_KEEPALIVE );
-        InetAddress ip = Inet4Address.getLoopbackAddress();
+        InetAddress ip = Inet4Address.getLocalHost();
         server.bind( new InetSocketAddress( ip, 0 ), 1 );
         InetSocketAddress localAddress = (InetSocketAddress) server.getLocalAddress();
         localHost = localAddress.getHostString();
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java
index ac30a66..01bb8f3 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java
@@ -33,6 +33,7 @@
 import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
+import java.net.InetAddress;
 import java.net.Socket;
 import java.net.URI;
 import java.nio.ByteBuffer;
@@ -98,9 +99,10 @@
             assertThat( channel.getCountdownCloseablePermits() )
                 .isEqualTo( 3 );
 
+            String localHost = InetAddress.getLocalHost().getHostAddress();
             assertThat( channel.getForkNodeConnectionString() )
-                .startsWith( "tcp://127.0.0.1:" )
-                .isNotEqualTo( "tcp://127.0.0.1:" );
+                .startsWith( "tcp://" + localHost + ":" )
+                .isNotEqualTo( "tcp://" + localHost + ":" );
 
             URI uri = new URI( channel.getForkNodeConnectionString() );
 
@@ -171,7 +173,7 @@
         @Override
         public void run()
         {
-            try ( Socket socket = new Socket( "127.0.0.1", port ) )
+            try ( Socket socket = new Socket( InetAddress.getLocalHost().getHostAddress(), port ) )
             {
                 byte[] data = new byte[128];
                 int readLength = socket.getInputStream().read( data );
diff --git a/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java b/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java
index 0128736..004d743 100644
--- a/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java
+++ b/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java
@@ -191,7 +191,7 @@
     @SuppressWarnings( "checkstyle:magicnumber" )
     private void client() throws Exception
     {
-        InetSocketAddress hostAddress = new InetSocketAddress( InetAddress.getLoopbackAddress(), address.getPort() );
+        InetSocketAddress hostAddress = new InetSocketAddress( InetAddress.getLocalHost(), address.getPort() );
         AsynchronousSocketChannel clientSocketChannel = AsynchronousSocketChannel.open();
         clientSocketChannel.connect( hostAddress ).get(); // Wait until connection is done.
         InputStream is = new BufferedInputStream( newInputStream( clientSocketChannel ), 64 * 1024 );