从主机外部访问在 WSL 实例上运行的 Web 服务

问题描述 投票:0回答:1

我有一个功能完善的运行Open WebUI的系统,如下:

  • 主机系统:带有 WSL 的 Windows 11,运行 Ubuntu 22.04.4 LTS
  • Ollama 使用 localhost:11434 安装在 WSL 中
  • Open WebUI:安装在 WSL 内的 docker 容器内,主机系统可以通过 localhost:8080 访问它

我使用以下方式安装了 docker 容器:

$ docker run --runtime=nvidia -d --network=host --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda

我在使用主机系统访问它时没有任何问题,但我想知道如何从网络中的另一台计算机访问它,只需在浏览器中输入我机器的固定 IP 地址(如 192.168.x.x): 8080.

docker http windows-subsystem-for-linux webui
1个回答
0
投票

我在阅读了一些内容后找到了解决方案。

解决方案是针对 Windows 主机,首先我在管理模式下使用 Powershell 进行端口转发:

netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=8080 connectaddress=[WSL_IP]

只需将 [WSL_IP] 替换为您的 WSL 实例 IP。

然后在防火墙上打一个洞,以允许从外部访问此端口:

New-NetFirewallRule -DisplayName "Allow WSL2 Port" -Description "To allow Open WebUI through the firewall." -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8080

然后就完成了!

© www.soinside.com 2019 - 2024. All rights reserved.