Index: dulwich/docs/tutorial/remote.txt
===================================================================
--- dulwich.orig/docs/tutorial/remote.txt
+++ dulwich/docs/tutorial/remote.txt
@@ -8,7 +8,7 @@ Most of the tests in this file require a
     >>> repo = Repo.init("remote", mkdir=True)
     >>> cid = repo.do_commit(b"message", committer=b"Jelmer <jelmer@samba.org>")
     >>> backend = DictBackend({b'/': repo})
-    >>> dul_server = TCPGitServer(backend, b'localhost', 0)
+    >>> dul_server = TCPGitServer(backend, b'127.0.0.1', 0)
     >>> server_thread = threading.Thread(target=dul_server.serve)
     >>> server_thread.start()
     >>> server_address, server_port=dul_server.socket.getsockname()
Index: dulwich/dulwich/tests/compat/test_client.py
===================================================================
--- dulwich.orig/dulwich/tests/compat/test_client.py
+++ dulwich/dulwich/tests/compat/test_client.py
@@ -365,7 +365,7 @@ class DulwichTCPClientTest(CompatTestCas
             "--base-path=%s" % self.gitroot,
             "--enable=receive-pack",
             "--enable=upload-archive",
-            "--listen=localhost",
+            "--listen=127.0.0.1",
             "--reuseaddr",
             self.gitroot,
         ]
@@ -397,7 +397,7 @@ class DulwichTCPClientTest(CompatTestCas
         CompatTestCase.tearDown(self)
 
     def _client(self):
-        return client.TCPGitClient("localhost")
+        return client.TCPGitClient("127.0.0.1")
 
     def _build_path(self, path):
         return path
@@ -450,7 +450,7 @@ class DulwichMockSSHClientTest(CompatTes
         client.get_ssh_vendor = self.real_vendor
 
     def _client(self):
-        return client.SSHGitClient("localhost")
+        return client.SSHGitClient("127.0.0.1")
 
     def _build_path(self, path):
         return self.gitroot + path
@@ -624,7 +624,7 @@ class HTTPGitServer(http.server.HTTPServ
     def __init__(self, server_address, root_path):
         http.server.HTTPServer.__init__(self, server_address, GitHTTPRequestHandler)
         self.root_path = root_path
-        self.server_name = "localhost"
+        self.server_name = "127.0.0.1"
 
     def get_url(self):
         return "http://{}:{}/".format(self.server_name, self.server_port)
@@ -637,7 +637,7 @@ class DulwichHttpClientTest(CompatTestCa
     def setUp(self):
         CompatTestCase.setUp(self)
         DulwichClientTestBase.setUp(self)
-        self._httpd = HTTPGitServer(("localhost", 0), self.gitroot)
+        self._httpd = HTTPGitServer(("127.0.0.1", 0), self.gitroot)
         self.addCleanup(self._httpd.shutdown)
         threading.Thread(target=self._httpd.serve_forever).start()
         run_git_or_fail(["config", "http.uploadpack", "true"], cwd=self.dest)
Index: dulwich/dulwich/tests/compat/server_utils.py
===================================================================
--- dulwich.orig/dulwich/tests/compat/server_utils.py
+++ dulwich/dulwich/tests/compat/server_utils.py
@@ -78,7 +78,7 @@ class ServerTests:
         self._new_repo = self.import_repo("server_new.export")
 
     def url(self, port):
-        return "{}://localhost:{}/".format(self.protocol, port)
+        return "{}://127.0.0.1:{}/".format(self.protocol, port)
 
     def branch_args(self, branches=None):
         if branches is None:
Index: dulwich/dulwich/tests/test_porcelain.py
===================================================================
--- dulwich.orig/dulwich/tests/test_porcelain.py
+++ dulwich/dulwich/tests/test_porcelain.py
@@ -3529,12 +3529,12 @@ class PackRefsTests(PorcelainTestCase):
 class ServerTests(PorcelainTestCase):
     @contextlib.contextmanager
     def _serving(self):
-        with make_server('localhost', 0, self.app) as server:
+        with make_server('127.0.0.1', 0, self.app) as server:
             thread = threading.Thread(target=server.serve_forever, daemon=True)
             thread.start()
 
             try:
-                yield f"http://localhost:{server.server_port}"
+                yield f"http://127.0.0.1:{server.server_port}"
 
             finally:
                 server.shutdown()
Index: dulwich/dulwich/tests/compat/test_web.py
===================================================================
--- dulwich.orig/dulwich/tests/compat/test_web.py
+++ dulwich/dulwich/tests/compat/test_web.py
@@ -53,7 +53,7 @@ class WebTests(ServerTests):
         backend = DictBackend({"/": repo})
         app = self._make_app(backend)
         dul_server = simple_server.make_server(
-            "localhost",
+            "127.0.0.1",
             0,
             app,
             server_class=WSGIServerLogger,
Index: dulwich/dulwich/tests/compat/utils.py
===================================================================
--- dulwich.orig/dulwich/tests/compat/utils.py
+++ dulwich/dulwich/tests/compat/utils.py
@@ -209,7 +209,7 @@ def check_for_daemon(limit=10, delay=0.1
         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         s.settimeout(delay)
         try:
-            s.connect(("localhost", port))
+            s.connect(("127.0.0.1", port))
             return True
         except socket.timeout:
             pass
Index: dulwich/dulwich/tests/compat/test_server.py
===================================================================
--- dulwich.orig/dulwich/tests/compat/test_server.py
+++ dulwich/dulwich/tests/compat/test_server.py
@@ -55,7 +55,7 @@ class GitServerTestCase(ServerTests, Com
 
     def _start_server(self, repo):
         backend = DictBackend({b"/": repo})
-        dul_server = TCPGitServer(backend, b"localhost", 0, handlers=self._handlers())
+        dul_server = TCPGitServer(backend, b"127.0.0.1", 0, handlers=self._handlers())
         self._check_server(dul_server)
         self.addCleanup(dul_server.shutdown)
         self.addCleanup(dul_server.server_close)
