diff --git a/src/libs/utils/ssh/sshconnection.cpp b/src/libs/utils/ssh/sshconnection.cpp
index 459ce0aa80da107aafc4775885d7a6fd8c672ec8..8dbfead8d2b1f41bc535e32f03a96d284eb6b289 100644
--- a/src/libs/utils/ssh/sshconnection.cpp
+++ b/src/libs/utils/ssh/sshconnection.cpp
@@ -167,9 +167,12 @@ SshConnectionParameters SshConnection::connectionParameters() const
     return d->m_connParams;
 }
 
-QAbstractSocket::NetworkLayerProtocol SshConnection::ipProtocolVersion() const
+SshConnectionInfo SshConnection::connectionInfo() const
 {
-    return d->m_socket->localAddress().protocol();
+    QTC_ASSERT(state() == Connected, return SshConnectionInfo());
+
+    return SshConnectionInfo(d->m_socket->localAddress(), d->m_socket->localPort(),
+        d->m_socket->peerAddress(), d->m_socket->peerPort());
 }
 
 SshConnection::~SshConnection()
diff --git a/src/libs/utils/ssh/sshconnection.h b/src/libs/utils/ssh/sshconnection.h
index 083ae67cd01fc4f8d2e0c9266d92157742e381ed..a9aa532c1897a4b5c78deb2837dfd64afb84328d 100644
--- a/src/libs/utils/ssh/sshconnection.h
+++ b/src/libs/utils/ssh/sshconnection.h
@@ -41,7 +41,7 @@
 #include <QtCore/QObject>
 #include <QtCore/QSharedPointer>
 #include <QtCore/QString>
-#include <QtNetwork/QAbstractSocket>
+#include <QtNetwork/QHostAddress>
 
 namespace Utils {
 class SftpChannel;
@@ -71,6 +71,19 @@ public:
 QTCREATOR_UTILS_EXPORT bool operator==(const SshConnectionParameters &p1, const SshConnectionParameters &p2);
 QTCREATOR_UTILS_EXPORT bool operator!=(const SshConnectionParameters &p1, const SshConnectionParameters &p2);
 
+class QTCREATOR_UTILS_EXPORT SshConnectionInfo
+{
+public:
+    SshConnectionInfo() : localPort(0), peerPort(0) {}
+    SshConnectionInfo(const QHostAddress &la, quint16 lp, const QHostAddress &pa, quint16 pp)
+        : localAddress(la), localPort(lp), peerAddress(pa), peerPort(pp) {}
+
+    QHostAddress localAddress;
+    quint16 localPort;
+    QHostAddress peerAddress;
+    quint16 peerPort;
+};
+
 class QTCREATOR_UTILS_EXPORT SshConnection : public QObject
 {
     Q_OBJECT
@@ -87,7 +100,7 @@ public:
     SshError errorState() const;
     QString errorString() const;
     SshConnectionParameters connectionParameters() const;
-    QAbstractSocket::NetworkLayerProtocol ipProtocolVersion() const;
+    SshConnectionInfo connectionInfo() const;
     ~SshConnection();
 
     QSharedPointer<SshRemoteProcess> createRemoteProcess(const QByteArray &command);
diff --git a/src/plugins/remotelinux/remotelinux.pro b/src/plugins/remotelinux/remotelinux.pro
index 6d2349ea4dbd673ed8438617b841789aa4758733..8feab7f75df713c5bc1f221807c43304a4830eaf 100644
--- a/src/plugins/remotelinux/remotelinux.pro
+++ b/src/plugins/remotelinux/remotelinux.pro
@@ -1,5 +1,6 @@
 TEMPLATE = lib
 TARGET = RemoteLinux
+QT += network
 
 include(../../qtcreatorplugin.pri)
 include(remotelinux_dependencies.pri)
diff --git a/src/plugins/remotelinux/remotelinuxusedportsgatherer.cpp b/src/plugins/remotelinux/remotelinuxusedportsgatherer.cpp
index 4dc6b4339b2bd7b6f9aa783fd029f26a20fa57d8..2b7dd0b80bb804d7d135883a9cf922c1618660e9 100644
--- a/src/plugins/remotelinux/remotelinuxusedportsgatherer.cpp
+++ b/src/plugins/remotelinux/remotelinuxusedportsgatherer.cpp
@@ -86,7 +86,7 @@ void RemoteLinuxUsedPortsGatherer::start(const Utils::SshConnection::Ptr &connec
         SLOT(handleRemoteStdErr(QByteArray)));
     QString procFilePath;
     int addressLength;
-    if (connection->ipProtocolVersion() == QAbstractSocket::IPv4Protocol) {
+    if (connection->connectionInfo().localAddress.protocol() == QAbstractSocket::IPv4Protocol) {
         procFilePath = QLatin1String("/proc/net/tcp");
         addressLength = 8;
     } else {