mirror of https://github.com/cbeuw/Cloak
Merge branch 'add-cdn-http-host-config-setting' into notsure2
This commit is contained in:
commit
e6799b2c1c
12
README.md
12
README.md
|
|
@ -140,13 +140,11 @@ techniques).**
|
||||||
`ServerName` is the domain you want to make your ISP or firewall _think_ you are visiting. Ideally it should
|
`ServerName` is the domain you want to make your ISP or firewall _think_ you are visiting. Ideally it should
|
||||||
match `RedirAddr` in the server's configuration, a major site the censor allows, but it doesn't have to.
|
match `RedirAddr` in the server's configuration, a major site the censor allows, but it doesn't have to.
|
||||||
|
|
||||||
`CdnHttpHost` is a setting that only has an effect when `Transport` is set to `CDN`. In `CDN` mode, Cloak makes a full
|
`CDNOriginHost` is the domain name of the _origin_ server (i.e. the server running Cloak) under `CDN` mode. This only
|
||||||
SSL handshake and then initiates an HTTP websocket request. This setting allows overriding the HTTP `Host` header
|
has effect when `Transport` is set to `CDN`. If unset, it will default to the remote hostname supplied via the
|
||||||
address value in the inner HTTP request. Note: This needs to be only a domain, the port is taken from the remote port
|
commandline argument (in standalone mode), or by Shadowsocks (in plugin mode). After a TLS session is established with
|
||||||
that Cloak connects to. This can be useful for some cases such as shadowsocks-android which don't pass the remote
|
the CDN server, this domain name will be used in the HTTP request to ask the CDN server to establish a WebSocket
|
||||||
address domain name but rather its resolved IP address. This override also allows you to try to use domain fronting by
|
connection with this host.
|
||||||
specifying a different Host header than the outer domain passed in the SSL handshake's SNI field. If this field is not
|
|
||||||
set, the passed remote address will be used.
|
|
||||||
|
|
||||||
`NumConn` is the amount of underlying TCP connections you want to use. The default of 4 should be appropriate for most
|
`NumConn` is the amount of underlying TCP connections you want to use. The default of 4 should be appropriate for most
|
||||||
people. Setting it too high will hinder the performance. Setting it to 0 will disable connection multiplexing and each
|
people. Setting it too high will hinder the performance. Setting it to 0 will disable connection multiplexing and each
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ type RawConfig struct {
|
||||||
UDP bool // nullable
|
UDP bool // nullable
|
||||||
BrowserSig string // nullable
|
BrowserSig string // nullable
|
||||||
Transport string // nullable
|
Transport string // nullable
|
||||||
CdnHttpHost string // nullable
|
CDNOriginHost string // nullable
|
||||||
StreamTimeout int // nullable
|
StreamTimeout int // nullable
|
||||||
KeepAlive int // nullable
|
KeepAlive int // nullable
|
||||||
}
|
}
|
||||||
|
|
@ -187,14 +187,16 @@ func (raw *RawConfig) ProcessRawConfig(worldState common.WorldState) (local Loca
|
||||||
remote.Singleplex = false
|
remote.Singleplex = false
|
||||||
}
|
}
|
||||||
|
|
||||||
if raw.CdnHttpHost == "" {
|
|
||||||
raw.CdnHttpHost = raw.RemoteHost
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transport and (if TLS mode), browser
|
// Transport and (if TLS mode), browser
|
||||||
switch strings.ToLower(raw.Transport) {
|
switch strings.ToLower(raw.Transport) {
|
||||||
case "cdn":
|
case "cdn":
|
||||||
cdnDomainPort := net.JoinHostPort(raw.CdnHttpHost, raw.RemotePort)
|
var cdnDomainPort string
|
||||||
|
if raw.CDNOriginHost == "" {
|
||||||
|
cdnDomainPort = net.JoinHostPort(raw.RemoteHost, raw.RemotePort)
|
||||||
|
} else {
|
||||||
|
cdnDomainPort = net.JoinHostPort(raw.CDNOriginHost, raw.RemotePort)
|
||||||
|
}
|
||||||
|
|
||||||
remote.TransportMaker = func() Transport {
|
remote.TransportMaker = func() Transport {
|
||||||
return &WSOverTLS{
|
return &WSOverTLS{
|
||||||
cdnDomainPort: cdnDomainPort,
|
cdnDomainPort: cdnDomainPort,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue