diff --git a/adapters/outbound/shadowsocks.go b/adapters/outbound/shadowsocks.go index 3943c060..f743f4df 100644 --- a/adapters/outbound/shadowsocks.go +++ b/adapters/outbound/shadowsocks.go @@ -72,7 +72,7 @@ func (ss *ShadowSocks) Generator(metadata *C.Metadata) (adapter C.ProxyAdapter, } func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error) { - server := fmt.Sprintf("%s:%d", option.Server, option.Port) + server := net.JoinHostPort(option.Server, strconv.Itoa(option.Port)) cipher := option.Cipher password := option.Password ciph, err := core.PickCipher(cipher, nil, password) diff --git a/adapters/outbound/socks5.go b/adapters/outbound/socks5.go index eae61090..d3a3f64b 100644 --- a/adapters/outbound/socks5.go +++ b/adapters/outbound/socks5.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "net" + "strconv" C "github.com/Dreamacro/clash/constant" @@ -114,7 +115,7 @@ func NewSocks5(option Socks5Option) *Socks5 { } return &Socks5{ - addr: fmt.Sprintf("%s:%d", option.Server, option.Port), + addr: net.JoinHostPort(option.Server, strconv.Itoa(option.Port)), name: option.Name, tls: option.TLS, skipCertVerify: option.SkipCertVerify, diff --git a/adapters/outbound/vmess.go b/adapters/outbound/vmess.go index 68e65509..6969c3c4 100644 --- a/adapters/outbound/vmess.go +++ b/adapters/outbound/vmess.go @@ -68,7 +68,7 @@ func NewVmess(option VmessOption) (*Vmess, error) { AlterID: uint16(option.AlterID), Security: security, TLS: option.TLS, - Host: fmt.Sprintf("%s:%d", option.Server, option.Port), + Host: net.JoinHostPort(option.Server, strconv.Itoa(option.Port)), NetWork: option.Network, WebSocketPath: option.WSPath, SkipCertVerify: option.SkipCertVerify, @@ -80,7 +80,7 @@ func NewVmess(option VmessOption) (*Vmess, error) { return &Vmess{ name: option.Name, - server: fmt.Sprintf("%s:%d", option.Server, option.Port), + server: net.JoinHostPort(option.Server, strconv.Itoa(option.Port)), client: client, }, nil }