Windows 上的 Ubuntu 子系统拒绝与本地主机的连接

Windows 上的 Ubuntu 子系统拒绝与本地主机的连接

我在 Linux 上用 Python 制作了一个服务器-客户端模型。当我在 Windows 上的 Ubuntu 子系统上运行服务器时,它运行良好。但是当我运行客户端(尝试连接到服务器)时,我收到此错误:

Traceback (most recent call last):
File "client.py", line 64, in <module>
s.connect('127.0.0.1',port)
File "client.py", line 19, in connect
self.sock.connect((host, port))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused

服务器正在监听 localhost 和 port = 14345,客户端正在尝试连接该服务器。我也试过了,telnet 127.0.0.1 14345但还是报同样的错误:

Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

我也在netstat -anWindows 上的 cmd 中尝试过,它显示了这个

TCP    127.0.1.1:14345        0.0.0.0:0              LISTENING

这意味着服务器确实在监听,但 Linux 子系统的客户端无法连接到它。

此外,该代码在真正的 Linux(我的意思是安装在硬盘上的 Ubuntu)上运行良好。

答案1

如果您在 Windows 中使用第三方防病毒/防火墙,请尝试暂时停用它们,看看连接是否恢复正常。作为安全措施,您可以暂时使用内置的 Windows 防病毒/防火墙程序。如果您在 WSL 中使用 Ubuntu,您可以安装 gufw 应用程序来管理您的 Linux 防火墙。

第三方防火墙与 Windows Subsystem for Linux 不兼容是一个已知问题。请参阅第三方 AV/防火墙无法上网apt-get 更新和安装失败了解详情。

相关内容