diff --git a/include/opendht/peer_discovery.h b/include/opendht/peer_discovery.h
index 7f17acdb9006bca558d37d5924c18a52db0448b1..7aa7c3b6907a7aef5bd0a65f6b490429b12ac3fb 100644
--- a/include/opendht/peer_discovery.h
+++ b/include/opendht/peer_discovery.h
@@ -31,9 +31,10 @@ namespace dht {
 class OPENDHT_PUBLIC PeerDiscovery
 {
 public:
-
+    static constexpr in_port_t DEFAULT_PORT = 8888;
     using ServiceDiscoveredCallback = std::function<void(msgpack::object&&, SockAddr&&)>;
-    PeerDiscovery(in_port_t port);
+
+    PeerDiscovery(in_port_t port = DEFAULT_PORT);
     ~PeerDiscovery();
 
     /**
diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index d75273890ced476e126b679ee86132d7a0b37990..c22501ca94098f57e6df4540519097bb3b5ead67 100644
--- a/src/dhtrunner.cpp
+++ b/src/dhtrunner.cpp
@@ -38,7 +38,6 @@ namespace dht {
 constexpr std::chrono::seconds DhtRunner::BOOTSTRAP_PERIOD;
 static constexpr size_t RX_QUEUE_MAX_SIZE = 1024 * 16;
 static constexpr std::chrono::milliseconds RX_QUEUE_MAX_DELAY(500);
-static constexpr in_port_t PEER_DISCOVERY_PORT = 8888;
 static const std::string PEER_DISCOVERY_DHT_SERVICE = "dht";
 
 struct DhtRunner::Listener {
@@ -157,7 +156,7 @@ DhtRunner::run(const SockAddr& local4, const SockAddr& local6, const DhtRunner::
     if (config.peer_discovery or config.peer_publish) {
         peerDiscovery_ = context.peerDiscovery ?
             std::move(context.peerDiscovery) :
-            std::make_shared<PeerDiscovery>(PEER_DISCOVERY_PORT);
+            std::make_shared<PeerDiscovery>();
     }
 
     auto netId = config.dht_config.node_config.network;