Discuss / Java / springboot无法连接到wsl2运行kafka的端口

springboot无法连接到wsl2运行kafka的端口

Topic source

Best of Me

#1 Created at ... [Delete] [Delete and Lock User]

原因分析: 

个人理解:wsl2是windows下面的子程序,本身也是用一个端口运行,而不是使用主机端口,所以spring boot直接连接主机端口是找不到wsl2下面的kafka,需要转发。

解决办法:

方法一:使用命令行

1. 在WSL2 终端内部使用`ifconfig`(或`ip addr`),找到其外部接口 IP( `eth0` 的网络接口,它有一个IP地址 XXX.XX.XX.XX,这可能是您的外部接口IP地址,因为它是分配给计算机的可公开路由的IP地址),然后将其用作通告的侦听器。

2. 使用Windows CMD运行下面命令,将端口从管理程序转发到主机

3. 

netsh interface portproxy add v4tov4 listenport=9092 listenaddress=0.0.0.0 connectport=9092 connectaddress=XXX.XX.XX.XX 

XXX.XX.XX.XX替换为外部接口IP

4. 接下来的工作就会自动完成:从 Windows 环境连接到`localhost`会将请求转发到管理程序,管理程序将返回其通告的侦听器地址。

方法二:只使用 Windows 的 Docker

运行 Kafka 并将侦听器配置为带有端口转发的容器,它会自己从 Windows 主机正确转发端口

其他小插曲:

老师的springboot是jdk11编译的,可以选择安装jdk11的库降级编译,或者升级到springboot3.0.x以上版本,jdk17以上编译。


  • 1

Reply