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企业版的专属功能和部署选项。