Si vous développez en Java en utilisant Debian, et plus particulièrement si vous faites du réseau avec Java, vous êtes peut être tombé récemment sur cette exception :

Exception in thread "main" java.net.NoRouteToHostException: Network is unreachable
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
        at java.net.Socket.connect(Socket.java:542)
        at java.net.Socket.connect(Socket.java:492)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:174)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:409)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:240)
        at sun.net.www.http.HttpClient.New(HttpClient.java:321)
        at sun.net.www.http.HttpClient.New(HttpClient.java:338)
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:814)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:755)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:680)
        at NetworkTest.main(NetworkTest.java:11)

Qui est facilement reproductible avec un programme du genre :

import java.net.URL;
import java.net.URLConnection;
import java.io.IOException;

public class NetworkTest {
        public static void main(String[] args) throws IOException {
                URL u = new URL("http://152.46.7.65");
                URLConnection uc = u.openConnection();
                uc.connect();
        }
}

Cela vient d'un nouveau paramètre sysctl introduit récemment dans unstable :

sebastien@boiboite ~ $ cat /etc/sysctl.d/bindv6only.conf
# This sysctl sets the default value of the IPV6_V6ONLY socket option.
#
# When disabled, IPv6 sockets will also be able to send and receive IPv4
# traffic with addresses in the form ::ffff:192.0.2.1 and daemons listening
# on IPv6 sockets will also accept IPv4 connections.
#
# When IPV6_V6ONLY is enabled, daemons interested in both IPv4 and IPv6
# connections must open two listening sockets.
# This is the default behaviour of almost all modern operating systems.

net.ipv6.bindv6only = 1

C'est lui qui casse le code réseau Java, un simple sudo sysctl -w net.ipv6.bindv6only=0 contournera le problème en attendant qu'il soit réglé...