A. 最终效果
B. 设置Ollama(前提)
bash
sudo vim /etc/systemd/system/ollama.service
txt
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="OLLAMA_MODELS=/home/lgk/ollama/models"
Environment="OLLAMA_HOST=0.0.0.0:11434"
[Install]
WantedBy=default.target
C. 启动Ollama(关键)
- 无效操作
bash
ollama serve
- 有效操作
bash
OLLAMA_HOST=0.0.0.0:<端口> ollama serve
- 失效分析
- 取消防火墙
禁用 WSL2 防火墙(或配置防火墙规则)
Windows 中的防火墙可能会阻止流量从 Windows 主机到 WSL2 的虚拟网络接口。你可以尝试通过以下步骤来暂时禁用防火墙以进行测试:
-
打开 PowerShell,以管理员身份运行以下命令:
powershellSet-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
-
然后再次尝试使用
curl
访问 WSL2 中的服务:powershellcurl http://172.29.75.201:11434
如果可以正常连接,那么你可以重新启用防火墙,并创建一条允许访问端口
11434
的规则。重新启用防火墙的命令是:powershellSet-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
重启防火墙
你可以通过以下步骤在 Windows 和 Linux 中重启防火墙:
在 Windows 中重启防火墙
-
打开 PowerShell 或 命令提示符,以管理员身份运行。
-
运行以下命令来重启 Windows 防火墙:
-
禁用防火墙:
powershellSet-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
-
重新启用防火墙:
powershellSet-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
-
在 Linux(WSL2)中重启防火墙
如果你在 WSL2 中使用 ufw
(Uncomplicated Firewall),可以通过以下命令管理防火墙:
-
以管理员权限运行以下命令来检查
ufw
是否安装:bashsudo ufw status
-
如果
ufw
没有启用或安装,首先启用它:bashsudo ufw enable
-
禁用
ufw
:bashsudo ufw disable
-
重新启用
ufw
:bashsudo ufw enable
检查防火墙状态
-
Windows:你可以使用以下命令检查防火墙是否已启用:
powershellGet-NetFirewallProfile -Profile Domain,Public,Private
-
Linux :运行以下命令检查
ufw
状态:bashsudo ufw status
这样你就可以在两种系统中重启防火墙了。