技术更新很快,需要对接支持联系群主​


一键安装&更新

bash <(curl -Ls https://blog.sprov.xyz/soga.sh)

或者,两个都可以

bash <(curl -Ls https://raw.githubusercontent.com/sprov065/soga/master/install.sh)

同步时间(重要)

v2ray 节点需要进行时间同步,时间若与客户端相差太大则无法连接

CentOS 7

yum install -y ntp
systemctl enable ntpd
ntpdate -q 0.rhel.pool.ntp.org
systemctl restart ntpd

Debian 9 / Ubuntu 16

apt-get install -y ntp
systemctl enable ntp
systemctl restart ntp

第一步,配置前端节点地址

  • 假设有域名 hk.domain.com,根据具体示例开启或未开启 CDN,服务器 IP 为 1.3.5.7
  • path 参数需以 / 开头
  • server 参数是显示给用户连接的地址,在开启 CDN 的情况下一定要填 CDN 域名,否则将无法使用 CDN
  • NAT 时使用 inside_port,inside_port 表示节点内部监听的端口,当 NAT 商家提供给你的外部端口和你服务器监听的内部端口不一致时使用

节点地址格式:

IP;用户连接的端口;alterId;(tcp或ws);(tls或不填);path=/xxx|host=xxxx.com|server=xxx.com|inside_port=xxx

tcp 示例,请注意 tcp 后面有两个分号

ip;12345;2;tcp;;server=域名
示例:1.3.5.7;12345;2;tcp;;server=hk.domain.com

tcp + tls 示例

ip;12345;2;tcp;tls;server=域名|host=域名
示例:1.3.5.7;12345;2;tcp;tls;server=hk.domain.com|host=hk.domain.com

ws 示例,若不用CDN,可以去掉host,注意ws后面有两个分号

ip;80;2;ws;;path=/xxx|server=域名|host=CDN域名
示例:1.3.5.7;80;2;ws;;path=/v2ray|server=hk.domain.com|host=hk.domain.com

ws + tls 示例,若不用CDN,可以去掉host

ip;443;2;ws;tls;path=/xxx|server=域名|host=CDN域名
示例:1.3.5.7;443;2;ws;tls;path=/v2ray|server=hk.domain.com|host=hk.domain.com

偏移端口 ws

当用户连接端口与程序监听端口不一致时使用,例如,中转机器连接端口与后端监听端口不同时

ip;监听端口;2;ws;;path=/xxx|server=域名|host=CDN域名|outside_port=用户连接端口

中转使用场景解释

落地服务器IP;落地服务器监听端口;2;ws;;path=/xxx|server=转发服务器IP或域名|host=CDN域名|outside_port=转发服务器监听端口
示例:1.3.5.7;80;2;ws;;path=/v2ray|server=hk.domain.com|host=hk.domain.com|outside_port=34567

偏移端口 ws + tls

当用户连接端口与程序监听端口不一致时使用,例如,中转机器连接端口与后端监听端口不同时

ip;监听端口;2;ws;tls;path=/xxx|server=域名|host=CDN域名|outside_port=用户连接端口

中转使用场景解释

落地服务器IP;落地服务器监听端口;2;ws;tls;path=/xxx|server=转发服务器IP或域名|host=CDN域名|outside_port=转发服务器监听端口
示例:1.3.5.7;443;2;ws;tls;path=/v2ray|server=hk.domain.com|host=hk.domain.com|outside_port=34567

tcp 模式也是同理,这里不再举例。


第二步,配置 soga

配置命令:

# 输出当前配置文件内容
soga config
​
# 对配置文件进行配置,一次可填写多个,也可以调用多次
soga config xxx=xxx yyy=yyy

第一次安装完成后,编辑配置文件:

配置文件位置在 /etc/soga/soga.conf

配置文件位置在 /etc/soga/soga.conf

配置文件位置在 /etc/soga/soga.conf

基础配置

type=sspanel-uim                             # 必填这个
server_type=v2ray                            # 必填这个
api=webapi                                   # webapi 或 db,表示 webapi 对接或数据库对接# webapi 对接
webapi_url=https://xxx.com/                  # webapi url,填写面板主页地址
webapi_mukey=xxxx                            # webapi key# 数据库对接
db_host=db.xxx.com                           # 数据库地址
db_port=3306                                 # 数据库端口
db_name=name                                 # 数据库名
db_user=root                                 # 数据库用户名
db_password=asdasdasd                        # 数据库密码
​
node_id=1                                    # 节点id
soga_key=                                    # 授权key,社区版无需填写,最多支持88用户,商业版无限制
user_conn_limit=0                            # 限制用户IP数,0代表无限制,默认会优先使用面板设置的限制IP数,在部分旧版面板下可能会获取不到,则使用这个值
​
force_close_ssl=false                        # 设为true可强制关闭tls,即使前端开启tls,soga也不会开启tls,方便用户自行使用nginx、caddy等反代
​
default_dns=8.8.8.8,1.1.1.1                  # 配置默认dns,可在此配置流媒体解锁的dns,以逗号分隔
dns_cache_time=10                            # 自定义dns缓存时间,单位分钟,仅在设置了default_dns时有效,或者v2board设置了dns规则时也有效
​
v2ray_reduce_memory=false                    # VMess 下有效,在已降低内存的基础上进一步降低内存使用,启用后客户端时间误差要求不超过15秒
​
proxy_protocol=false                         # 具体请参看中转获取真实 IP 教程
v2ray_fallback_addr=                         # v2ray fallback 地址,仅 tcp+tls 可使用
v2ray_fallback_port=0                        # v2ray fallback 端口,仅 tcp+tls 可使用
auto_update=false                            # soga 自动更新,只会检测稳定版
​
vless=false                                  # 设为 true 可切换为 VLESS 协议,目前 VLESS 协议未完全开发完成,仅供测试
vless_flow=                                  # vless 流控,具体请参考 v2ray 官方文档
xtls=false                                   # 设为 true 即可开启 xtls,仅支持 tcp + tls 时开启

配置证书

若未开启 tls,则无需配置证书

soga 支持三种方式配置证书,任选其一即可

① 手动指定证书路径

  • 以 / 开头的绝对路径
cert_file=                                   # 手动指定证书路径
key_file=                                    # 手动指定密钥路径

② http 模式自动申请证书(推荐)

  • 确保服务器中没有其它程序占用 80 端口,申请和续签时需要临时使用
  • 确保域名已解析到本服务器的IP
  • 若开启CDN,则必须确保CDN不会跳转https,否则推荐dns验证
cert_domain=xxx.com                          # 申请证书的域名
cert_mode=http                               # 申请模式
cert_key_length=ec-256                       # 留空则申请RSA证书,填写ec-256或ec-384则申请ECC证书

③ dns 模式自动申请证书

CloudFlare 配置示例

cert_domain=xxx.com                          # 申请证书的域名
cert_mode=dns                                # 申请模式
cert_key_length=ec-256                       # 留空则申请RSA证书,填写ec-256或ec-384则申请ECC证书
dns_provider=dns_cf                          # DNS 提供商
​
DNS_CF_Email=xxx@xx.com                      # CF 邮箱
DNS_CF_Key=xxxxx                             # CF API Global Key

DNSPod 配置示例

cert_domain=xxx.com                          # 申请证书的域名
cert_mode=dns                                # 申请模式
cert_key_length=ec-256                       # 留空则申请RSA证书,填写ec-256或ec-384则申请ECC证书
dns_provider=dns_dp                          # DNS 提供商
​
DNS_DP_Id=111                                # DNSPod 用户 id
DNS_DP_Key=xxxxx                             # DNSPod API 密钥

其它的 DNS 服务商都能在这个页面找到:https://github.com/acmesh-official/acme.sh/wiki/dnsapi

配置要点:

  • 搜索 DNS 提供商的名称,并找到命令中 --dns dns_xxx 的内容,这个 dns_xxx 就是你要填的
  • 再看看 DNS 提供商所需要配置的内容,区分大小写,一般都是 API 密钥之类的,注意要在 soga 配置中加上 DNS_ 前缀,防止配置冲突


第三步、启动 soga

soga start

作者 灰武士