diff --git a/client.conf.sample b/client.conf.sample
index 9eae16e..b1debc8 100644
--- a/client.conf.sample
+++ b/client.conf.sample
@@ -6,7 +6,10 @@
 ;   tcp://192.0.2.1
 ;   tcp4://example.com:6363
 ;
-transport=unix:///var/run/nfd.sock
+; The default value of this field is platform-dependent, being unix:///run/nfd.sock on Linux and
+; unix:///var/run/nfd.sock on other platforms.
+;
+;transport=unix:///var/run/nfd.sock
 
 ; "pib" determines which Public Info Base (PIB) should used by default in applications.
 ; If "pib" is not specified, a platform-dependent default will be used.
diff --git a/docs/manpages/ndn-client.conf.rst b/docs/manpages/ndn-client.conf.rst
index 62f42ca..5908972 100644
--- a/docs/manpages/ndn-client.conf.rst
+++ b/docs/manpages/ndn-client.conf.rst
@@ -19,10 +19,11 @@
 ---
 
 transport
-  FaceUri for default connection toward local NDN forwarder.  Only ``unix`` and ``tcp4`` FaceUris
-  can be specified here.
+  FaceUri for default connection toward local NDN forwarder.  Only ``unix``, ``tcp``, ``tcp4``, and
+  ``tcp6`` FaceUris can be specified here.
 
-  By default, ``unix:///var/run/nfd.sock`` is used.
+  By default, ``unix:///run/nfd.sock`` is used on Linux and ``unix:///var/run/nfd.sock`` is used on
+  other platforms.
 
   .. note::
     This value can be overridden using the ``NDN_CLIENT_TRANSPORT`` environment variable.
diff --git a/ndn-cxx/face.cpp b/ndn-cxx/face.cpp
index 8b20ae3..3843bc6 100644
--- a/ndn-cxx/face.cpp
+++ b/ndn-cxx/face.cpp
@@ -100,9 +100,6 @@
 shared_ptr<Transport>
 Face::makeDefaultTransport()
 {
-  // transport=unix:///var/run/nfd.sock
-  // transport=tcp://localhost:6363
-
   std::string transportUri;
 
   const char* transportEnviron = getenv("NDN_CLIENT_TRANSPORT");
diff --git a/ndn-cxx/transport/unix-transport.cpp b/ndn-cxx/transport/unix-transport.cpp
index 6e909a2..f1f1526 100644
--- a/ndn-cxx/transport/unix-transport.cpp
+++ b/ndn-cxx/transport/unix-transport.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2019 Regents of the University of California.
+ * Copyright (c) 2013-2020 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -42,7 +42,11 @@
 UnixTransport::getSocketNameFromUri(const std::string& uriString)
 {
   // Assume the default nfd.sock location.
+#ifdef __linux__
+  std::string path = "/run/nfd.sock";
+#else
   std::string path = "/var/run/nfd.sock";
+#endif // __linux__
 
   if (uriString.empty()) {
     return path;
diff --git a/tests/unit/transport/unix-transport.t.cpp b/tests/unit/transport/unix-transport.t.cpp
index 41c46b9..5711859 100644
--- a/tests/unit/transport/unix-transport.t.cpp
+++ b/tests/unit/transport/unix-transport.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2020 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -32,27 +32,19 @@
 
 using ndn::Transport;
 
-BOOST_AUTO_TEST_CASE(GetDefaultSocketNameOk)
+BOOST_AUTO_TEST_CASE(GetSocketNameFromUri)
 {
   BOOST_CHECK_EQUAL(UnixTransport::getSocketNameFromUri("unix:///tmp/test/nfd.sock"), "/tmp/test/nfd.sock");
-}
-
-BOOST_AUTO_TEST_CASE(GetDefaultSocketNameOkOmittedSocketOmittedProtocol)
-{
+#ifdef __linux__
+  BOOST_CHECK_EQUAL(UnixTransport::getSocketNameFromUri(""), "/run/nfd.sock");
+#else
   BOOST_CHECK_EQUAL(UnixTransport::getSocketNameFromUri(""), "/var/run/nfd.sock");
-}
-
-BOOST_AUTO_TEST_CASE(GetDefaultSocketNameBadWrongTransport)
-{
+#endif // __linux__
   BOOST_CHECK_EXCEPTION(UnixTransport::getSocketNameFromUri("tcp://"),
                         Transport::Error,
                         [] (const Transport::Error& error) {
                           return error.what() == "Cannot create UnixTransport from \"tcp\" URI"s;
                         });
-}
-
-BOOST_AUTO_TEST_CASE(GetDefaultSocketNameBadMalformedUri)
-{
   BOOST_CHECK_EXCEPTION(UnixTransport::getSocketNameFromUri("unix"),
                         Transport::Error,
                         [] (const Transport::Error& error) {
