使用 WSL 开发调试项目,项目主要用 java、vue,java的各个微服务、nacos都部署在局域网的一台服务中(8.150)。现在把各个微服务都使用docker compose部署到这台服务器中。
debug A服务时把通过nacos下线服务器上运行的A服务,调试过程中时不时发现 Fegin 调用超时,但是也有正常的时候,刚开始怀疑是nacos的策略多少有点问题没去管,现在本地开前端工程,也出现接口频繁调用超时,这才怀疑是其他原因,通过debug也看到nacos负载均衡拿到的ip是正确的。

直观现象是同时进行 ping、nc 检测,ping一直是通的,循环执行 nc -vz -w2 192.168.8.150 9999 会出现无规则断断续续的现象
while true; do nc -vz -w2 192.168.8.150 9999; sleep 1; done
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
nc: connect to 192.168.8.150 port 9999 (tcp) timed out: Operation now in progress
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
Connection to 192.168.8.150 9999 port [tcp/*] succeeded!
目前使用的 .wslconfig
[wsl2]
# WSL 与 Windows 使用同一网络
networkingMode=mirrored
# 内存限制
memory=16GB
# CPU数量
processors=4
# Swap
swap=4GB
# DNS增强
dnsTunneling=true
# Windows防火墙集成
firewall=false
# Docker/虚拟化支持
nestedVirtualization=true
[experimental]
# 自动回收WSL缓存内存
autoMemoryReclaim=gradual
# 使用稀疏虚拟磁盘
sparseVhd=true
已做的尝试:
- 在 WSL 中直接curl 8.150 的接口(一样频繁出现超时现象)
- 更改 windows 网关(原来是使用旁路由的形式,改为主网关一样)
- 在旁路由的终端持续 nc 检测正常,局域网内其他服务器 nc 检测正常
- 更改 WSL 网络各个配置,当关闭 localhost转发时的确不会出现超时(但是这就不能访问npm run dev 起来的网页了)
- 重置Windows的网络,并重启
主要想要解决的问题是:WSL中访问局域网内其他服务器的接口地址,频繁超时
有没了解的佬,指点下还要怎么处理或排查