# 如何讓 Ollama 在 Linux 上對外開放連線 ###### tags:`ollama` `linux` `networking` `systemd` :::info **適用環境**:Linux 系統(包含 Proxmox LXC 容器) **目標**:讓 Ollama 服務可以接受外部機器的連接請求 ::: ## 問題診斷 ### 檢查 Ollama 執行狀態 ```bash # 檢查 Ollama 是否正在執行 ps aux | grep ollama # 檢查 Ollama 偵聽的 ip 和 port sudo ss -tlnp | grep 11434 ``` :::warning 如果看到 `127.0.0.1:11434`,表示 Ollama 只偵聽本機連線,需要修改設定 ::: ![image](https://hackmd.io/_uploads/HJWkx6zhle.png) ## 解決方案 ### Step 1:建立 systemd 服務覆蓋目錄 ```bash sudo mkdir -p /etc/systemd/system/ollama.service.d/ ``` ### Step 2:建立環境變數設定文件 ```bash sudo tee /etc/systemd/system/ollama.service.d/override.conf << EOF [Service] Environment="OLLAMA_HOST=0.0.0.0:11434" EOF ``` ### Step 3:重新載入並重啟服務 ```bash # 重新載入 systemd 設定 sudo systemctl daemon-reload # 重啟 Ollama 服務 sudo systemctl restart ollama ``` ### Step 4:驗證設定成功 ```bash # 檢查是否監聽所有介面 sudo ss -tlnp | grep 11434 ``` :::success **成功標誌**:應該看到 `0.0.0.0:11434` 而不是 `127.0.0.1:11434` ::: ![image](https://hackmd.io/_uploads/HyFTJ6zhex.png) ### Step 5:測試連接 #### 本地測試 ```bash # 測試本機連線 curl http://localhost:11434/api/tags ``` ![image](https://hackmd.io/_uploads/HJpmbpG3le.png) ## 故障排除 ### 如果 systemd 方法無效 ```bash # 停止 systemd 服務 sudo systemctl stop ollama # 手動啟動並設定環境變數 sudo OLLAMA_HOST=0.0.0.0:11434 /usr/local/bin/ollama serve ``` ### 防火牆檢查 ```bash # 檢查防火牆狀態 sudo ufw status # 如需要,開放 11434 port sudo ufw allow 11434 ``` :::danger **安全提醒**:對外開放 Ollama 服務時,請確保網路環境安全,避免未授權存取 ::: ---