无法连接到侦听127.0.0.1的套接字,但适用于Windows 10中的“localhost”


4

我有一个干净安装的Windows 10 Pro x64,我正在尝试运行PostgreSQL服务器。它曾经在Windows 7上完美运行,但Windows 10表现得非常奇怪:如果我配置PostgreSQL来监听,127.0.0.1那么我无法使用psql连接到它:

psql: could not connect to server: Permission denied (0x0000271D/10013)
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 5432?
could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 5432?

但如果我改变它来监听192.168.0.108(我的内部网IP),那么一切正常:

>psql.exe --host=192.168.0.108 --username=test test
psql (9.4.0)

相同的行为(意味着PostgreSQL正常工作)就是我告诉它localhost作为名称而不是IP 来监听,尽管在这两种情况下(localhost或者127.0.0.1)它都在同一个IP和端口上进行侦听:

>netstat -abno | grep 5432 -A 1
  TCP    127.0.0.1:5432         0.0.0.0:0              LISTENING       3480
 [postgres.exe]
--
  TCP    [::1]:5432             [::]:0                 LISTENING       3480
 [postgres.exe]

我的一切都没有C:\Windows\System32\drivers\etc\hosts。我不认为问题是PostgreSQL特有的,我只是以它为例。我有其他本地运行的服务有同样的问题 - 由于权限错误无法连接到本地套接字。


并确认,您正在从其托管的同一个盒子访问该端口,对吗?要注意的一件事是localhost绑定。许多人都不知道127.块中的任何地址都可以作为环回,但并非所有地址都绑定到名称localhost。Bonjour / AVAHI和其他Zero-conf服务可以将其他环回地址映射到像mybox.local。IPv6也可能混淆水域,因此如果不需要,请考虑禁用它。
弗兰克托马斯

是的,我从同一个盒子里访问它。IPv6也是我的怀疑,所以我尝试通过注册表(Services / TSCPIP6 / Parameters,DisabledComponents键)和网络适配器设置禁用IPv6,但它没有帮助。
extesy 2015年

你有防火墙在运行吗?尝试暂时禁用它,看看是否会影响这种情况。否则你所展示的一切都很好。
弗兰克托马斯

我有KIS2016正在运行。尝试完全禁用它几分钟。也没帮助。
extesy 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.