7.2 网络配置

OpenCode支持多种网络配置选项,包括代理设置、自定义认证和CA证书配置,适用于企业环境和特殊网络需求。

代理设置

OpenCode使用标准的环境变量来配置HTTP/HTTPS代理,与大多数命令行工具兼容。

HTTPS_PROXY

用于HTTPS请求的代理服务器:

# 设置HTTPS代理
export HTTPS_PROXY=http://proxy.company.com:8080

# 带认证的代理
export HTTPS_PROXY=http://username:password@proxy.company.com:8080

# 使用SOCKS5代理
export HTTPS_PROXY=socks5://proxy.company.com:1080

HTTP_PROXY

用于HTTP请求的代理服务器:

# 设置HTTP代理
export HTTP_PROXY=http://proxy.company.com:8080

# 带认证的代理
export HTTP_PROXY=http://username:password@proxy.company.com:8080

NO_PROXY

指定不使用代理的主机或域名:

# 排除本地和内部域名
export NO_PROXY=localhost,127.0.0.1,.company.internal

# 排除特定IP段
export NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16

# 多个域名用逗号分隔
export NO_PROXY=localhost,.local,.internal,api.openai.com
注意
代理密码中如果包含特殊字符(如 @:),需要进行URL编码。例如 p@ss:word 应编码为 p%40ss%3Aword

认证方法

OpenCode支持多种认证方法连接AI提供商。

API密钥认证

最常用的认证方式,通过环境变量设置:

# Anthropic
export ANTHROPIC_API_KEY=sk-ant-xxx

# OpenAI
export OPENAI_API_KEY=sk-xxx

# Google
export GOOGLE_API_KEY=xxx

# Azure OpenAI
export AZURE_OPENAI_API_KEY=xxx
export AZURE_OPENAI_ENDPOINT=https://xxx.openai.azure.com

OAuth认证

某些提供商支持OAuth认证流程:

# 使用OAuth登录(会打开浏览器)
opencode auth login anthropic

# 检查认证状态
opencode auth status

# 登出
opencode auth logout anthropic

Bearer Token

对于自定义端点,可以使用Bearer Token:

{
  "provider": {
    "custom": {
      "name": "internal-api",
      "baseURL": "https://api.internal.com/v1",
      "headers": {
        "Authorization": "Bearer your-token-here"
      }
    }
  }
}

自定义CA证书

在企业环境中,可能需要使用自定义CA证书来处理SSL/TLS连接。

使用环境变量

# 指定CA证书文件
export NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.crt

# 或使用SSL_CERT_FILE
export SSL_CERT_FILE=/path/to/ca-bundle.crt

# 指定证书目录
export SSL_CERT_DIR=/path/to/certificates/

配置文件方式

{
  "network": {
    "ca": "/path/to/ca-bundle.crt",
    "rejectUnauthorized": true
  }
}

跳过证书验证(不推荐)

# 仅用于测试环境
export NODE_TLS_REJECT_UNAUTHORIZED=0
警告
禁用证书验证会使连接容易受到中间人攻击,仅应在受控的测试环境中使用。

端口和主机名配置

配置OpenCode服务器的监听端口和主机名。

服务器模式配置

# 启动服务器(默认端口)
opencode serve

# 指定端口
opencode serve --port 8080

# 指定主机和端口
opencode serve --host 0.0.0.0 --port 8080

配置文件方式

{
  "server": {
    "host": "127.0.0.1",
    "port": 8080,
    "cors": {
      "enabled": true,
      "origins": ["http://localhost:3000"]
    }
  }
}

Web界面配置

{
  "web": {
    "enabled": true,
    "port": 3000,
    "host": "localhost",
    "open": true
  }
}

连接超时设置

配置API请求的超时时间:

{
  "network": {
    "timeout": 60000,
    "retries": 3,
    "retryDelay": 1000
  }
}

DNS配置

对于特殊的DNS需求:

# 使用自定义DNS服务器
export DNS_SERVER=8.8.8.8

# 或在配置文件中
{
  "network": {
    "dns": ["8.8.8.8", "8.8.4.4"]
  }
}

调试网络问题

启用详细的网络日志以排查问题:

# 启用调试日志
export DEBUG=opencode:network

# 查看HTTP请求详情
export DEBUG=opencode:http

# 启用所有调试日志
export DEBUG=opencode:*
提示
如果在企业防火墙后使用OpenCode,建议联系IT部门获取正确的代理配置和CA证书。

完整配置示例

企业环境的完整网络配置:

# ~/.bashrc 或 ~/.zshrc
export HTTPS_PROXY=http://proxy.company.com:8080
export HTTP_PROXY=http://proxy.company.com:8080
export NO_PROXY=localhost,127.0.0.1,.company.internal
export NODE_EXTRA_CA_CERTS=/etc/ssl/certs/company-ca.crt

# API密钥
export ANTHROPIC_API_KEY=sk-ant-xxx
// opencode.json
{
  "network": {
    "timeout": 120000,
    "retries": 5,
    "retryDelay": 2000
  },
  "server": {
    "host": "127.0.0.1",
    "port": 8080
  }
}

下一步

接下来了解OpenCode企业版的专属功能和部署选项。