fix ProxyProtocol

This commit is contained in:
Yuzuki616 2023-07-08 22:44:49 +08:00
parent 28acdc7087
commit c3242f35bd
2 changed files with 17 additions and 16 deletions

View File

@ -6,6 +6,7 @@ import (
"encoding/hex" "encoding/hex"
"errors" "errors"
"fmt" "fmt"
"github.com/Yuzuki616/V2bX/api/panel" "github.com/Yuzuki616/V2bX/api/panel"
"github.com/Yuzuki616/V2bX/conf" "github.com/Yuzuki616/V2bX/conf"
"github.com/goccy/go-json" "github.com/goccy/go-json"
@ -52,16 +53,16 @@ func BuildInbound(config *conf.ControllerConfig, nodeInfo *panel.NodeInfo, tag s
in.SniffingConfig = sniffingConfig in.SniffingConfig = sniffingConfig
if *in.StreamSetting.Network == "tcp" { if *in.StreamSetting.Network == "tcp" {
if in.StreamSetting.TCPSettings != nil { if in.StreamSetting.TCPSettings != nil {
in.StreamSetting.TCPSettings.AcceptProxyProtocol = config.EnableProxyProtocol in.StreamSetting.TCPSettings.AcceptProxyProtocol = config.XrayOptions.EnableProxyProtocol
} else { } else {
tcpSetting := &coreConf.TCPConfig{ tcpSetting := &coreConf.TCPConfig{
AcceptProxyProtocol: config.EnableProxyProtocol, AcceptProxyProtocol: config.XrayOptions.EnableProxyProtocol,
} //Enable proxy protocol } //Enable proxy protocol
in.StreamSetting.TCPSettings = tcpSetting in.StreamSetting.TCPSettings = tcpSetting
} }
} else if *in.StreamSetting.Network == "ws" { } else if *in.StreamSetting.Network == "ws" {
in.StreamSetting.WSSettings = &coreConf.WebSocketConfig{ in.StreamSetting.WSSettings = &coreConf.WebSocketConfig{
AcceptProxyProtocol: config.EnableProxyProtocol} //Enable proxy protocol AcceptProxyProtocol: config.XrayOptions.EnableProxyProtocol} //Enable proxy protocol
} }
// Set TLS or Reality settings // Set TLS or Reality settings
if nodeInfo.Tls { if nodeInfo.Tls {
@ -104,9 +105,9 @@ func BuildInbound(config *conf.ControllerConfig, nodeInfo *panel.NodeInfo, tag s
// Support ProxyProtocol for any transport protocol // Support ProxyProtocol for any transport protocol
if *in.StreamSetting.Network != "tcp" && if *in.StreamSetting.Network != "tcp" &&
*in.StreamSetting.Network != "ws" && *in.StreamSetting.Network != "ws" &&
config.EnableProxyProtocol { config.XrayOptions.EnableProxyProtocol {
socketConfig := &coreConf.SocketConfig{ socketConfig := &coreConf.SocketConfig{
AcceptProxyProtocol: config.EnableProxyProtocol, AcceptProxyProtocol: config.XrayOptions.EnableProxyProtocol,
TFO: config.XrayOptions.EnableTFO, TFO: config.XrayOptions.EnableTFO,
} //Enable proxy protocol } //Enable proxy protocol
in.StreamSetting.SocketSettings = socketConfig in.StreamSetting.SocketSettings = socketConfig

View File

@ -19,7 +19,6 @@ type ControllerConfig struct {
DisableGetRule bool `yaml:"DisableGetRule"` DisableGetRule bool `yaml:"DisableGetRule"`
ListenIP string `yaml:"ListenIP"` ListenIP string `yaml:"ListenIP"`
SendIP string `yaml:"SendIP"` SendIP string `yaml:"SendIP"`
EnableProxyProtocol bool `yaml:"EnableProxyProtocol"`
XrayOptions XrayOptions `yaml:"XrayOptions"` XrayOptions XrayOptions `yaml:"XrayOptions"`
HyOptions HyOptions `yaml:"HyOptions"` HyOptions HyOptions `yaml:"HyOptions"`
LimitConfig LimitConfig `yaml:"LimitConfig"` LimitConfig LimitConfig `yaml:"LimitConfig"`
@ -27,6 +26,7 @@ type ControllerConfig struct {
} }
type XrayOptions struct { type XrayOptions struct {
EnableProxyProtocol bool `yaml:"EnableProxyProtocol"`
EnableDNS bool `yaml:"EnableDNS"` EnableDNS bool `yaml:"EnableDNS"`
DNSType string `yaml:"DNSType"` DNSType string `yaml:"DNSType"`
EnableVless bool `yaml:"EnableVless"` EnableVless bool `yaml:"EnableVless"`