OSX:Chrome无法连接到.localhost-domains,连接被拒绝

dfty9e19  于 2023-06-19  发布在  Go
关注(0)|答案(2)|浏览(144)

这让我难住了。
我有一个运行nginx + php-fpm的本地开发设置,其中我使用.localhost作为每个项目的工作域。昨天Chrome停止使用本地域。相反,它只是返回连接拒绝。DevTools显示错误为(failed) net::ERR_CONNECTION_RESET
访问http://127.0.0.1可以工作,但当然不能用于本地项目。
Safari继续使用. localhost。
Chrome:版本90.0.4430.212(官方版本)(x86_64)操作系统:macOS 11.4(20F71)

vngu2lb8

vngu2lb81#

尝试了几种不同的方法,例如:

  • 更新/etc/hosts
  • 清除Chrome chrome://net-internals/#dns的DNS
  • chrome://net-internals/#hsts删除域

在chrome://net-internals/#events中创建了一个netlogs,然后查看了不同的事件,找到了解决方案。找到了这个:

t=18295 [st=0] +SOCKET_ALIVE  [dt=4]
                --> source_dependency = 5112 (TRANSPORT_CONNECT_JOB)
t=18295 [st=0]   +TCP_CONNECT  [dt=1]
                  --> address_list = ["[::1]:80","127.0.0.1:80"]
                  --> canonical_name = ""
t=18295 [st=0]      TCP_CONNECT_ATTEMPT  [dt=1]
                    --> address = "[::1]:80"
t=18296 [st=1]   -TCP_CONNECT
                  --> source_address = "[::1]:56378"
t=18296 [st=1]   +SOCKET_IN_USE  [dt=3]
                  --> source_dependency = 5111 (HTTP_STREAM_JOB)
t=18296 [st=1]      SOCKET_BYTES_SENT
                    --> byte_count = 719
t=18298 [st=3]      SOCKET_READ_ERROR
                    --> net_error = -101 (ERR_CONNECTION_RESET)
                    --> os_error = 54
t=18299 [st=4]   -SOCKET_IN_USE
t=18299 [st=4]    SOCKET_POOL_CLOSING_SOCKET
                  --> reason = "Connection was closed when it was returned to the pool"
t=18299 [st=4] -SOCKET_ALIVE

Chrome似乎默认为IPv6。

解决方案在nginx站点配置中添加listen [::]:80 ipv6only=off;,重启nginx。

eqqqjvef

eqqqjvef2#

修复MySQL Socket localhost vs 127.0.0.1错误

套接字是一个允许MySQL客户端/服务器通信的文件。链接MySQL放置套接字的位置和macOS认为它应该在的位置可以解决这个问题。MySQL将套接字放在/tmp中,macOS在/var/mysql中查找它。在终端中运行以下命令,这应该可以解决问题

sudo mkdir /var/mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

相关问题