兼容Android环境运行导致无法解析DNS问题,修改默认UDP队列长度从128到1024
This commit is contained in:
parent
9d2210368c
commit
af51714e49
@ -25,6 +25,10 @@ Evan 增强版特性
|
||||
* HTTP CONNECT方法支持自定义Host(常用于免流混淆)
|
||||
- 例子: gost -L http://:8888 -F http://evan.run:80?host=cdn.dingding.com -F socks5://127.0.0.1:1080
|
||||
* 修改默认User Agent为Google默认浏览器的UA,修改代理默认UA为nginx
|
||||
* 兼容Android环境,针对Android环境下无法解析域名的问题(Android环境下默认使用114.114.114.114作为DNS,可使用启动参数-NS自定义)
|
||||
- 例子: gost -L http://:8888 -F http://evan.run:80 -NS 114.114.114.114:53/udp
|
||||
* 修复原版DNS解析的BUG
|
||||
* 修复原版websocket协议中path参数不解码后发送问题
|
||||
|
||||
初步防检测防杀毒处理脚本
|
||||
------
|
||||
|
3
chain.go
3
chain.go
@ -174,6 +174,9 @@ func (c *Chain) dialWithOptions(ctx context.Context, network, address string, op
|
||||
}
|
||||
default:
|
||||
}
|
||||
if DefaultExternalResolver != nil && ipAddr == address {
|
||||
ipAddr = c.resolve(ipAddr, DefaultExternalResolver, options.Hosts)
|
||||
}
|
||||
d := &net.Dialer{
|
||||
Timeout: timeout,
|
||||
Control: controlFunction,
|
||||
|
@ -1,10 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"runtime"
|
||||
@ -35,14 +37,15 @@ func init() {
|
||||
flag.StringVar(&configureFile, "C", "", "configure file")
|
||||
flag.BoolVar(&baseCfg.Debug, "D", false, "enable debug log")
|
||||
flag.BoolVar(&printVersion, "V", false, "print version")
|
||||
flag.StringVar(&baseCfg.ExternalResolver, "NS", "", "External DNS Server")
|
||||
if pprofEnabled {
|
||||
flag.StringVar(&pprofAddr, "P", ":6060", "profiling HTTP server address")
|
||||
}
|
||||
flag.Parse()
|
||||
|
||||
if printVersion {
|
||||
fmt.Fprintf(os.Stdout, "gost %s (%s %s/%s)\nEnhanced:\n%s\n",
|
||||
gost.Version, runtime.Version(), runtime.GOOS, runtime.GOARCH, gost.Enhanced)
|
||||
fmt.Fprintf(os.Stdout, "gost %s (%s %s/%s)\n",
|
||||
gost.Version, runtime.Version(), runtime.GOOS, runtime.GOARCH)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
@ -85,6 +88,17 @@ func main() {
|
||||
|
||||
gost.DefaultTLSConfig = tlsConfig
|
||||
|
||||
if baseCfg.ExternalResolver != "" {
|
||||
gost.DefaultExternalResolver = parseResolver(baseCfg.ExternalResolver)
|
||||
gost.DefaultExternalResolver.Init()
|
||||
} else if os.Getenv("ANDROID_ROOT") != "" {
|
||||
log.Logf("Android detected modify default DNS server to %v", gost.DefaultDNSServer)
|
||||
net.DefaultResolver = &net.Resolver{Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
|
||||
d := net.Dialer{}
|
||||
return d.DialContext(ctx, network, gost.DefaultDNSServer)
|
||||
}, PreferGo: true}
|
||||
}
|
||||
|
||||
if err := start(); err != nil {
|
||||
log.Log(err)
|
||||
os.Exit(1)
|
||||
|
@ -32,6 +32,7 @@ type route struct {
|
||||
ChainNodes stringList
|
||||
Retries int
|
||||
Mark int
|
||||
ExternalResolver string
|
||||
}
|
||||
|
||||
func (r *route) parseChain() (*gost.Chain, error) {
|
||||
|
11
gost.go
11
gost.go
@ -21,10 +21,6 @@ import (
|
||||
|
||||
// Version is the gost version.
|
||||
const Version = "2.11.2-EvanMod-v1.2.1"
|
||||
const Enhanced = "Add parameter sni for all tls\n" +
|
||||
"Add parameter header=header.txt for custom header process\n" +
|
||||
"Add parameter host for http connect\n" +
|
||||
"Change default user agent to Chrome"
|
||||
const ProxyAgent = "nginx"
|
||||
|
||||
// Debug is a flag that enables the debug log.
|
||||
@ -75,7 +71,7 @@ var (
|
||||
// default udp node TTL in second for udp port forwarding.
|
||||
defaultTTL = 60 * time.Second
|
||||
defaultBacklog = 128
|
||||
defaultQueueSize = 128
|
||||
defaultQueueSize = 1024
|
||||
)
|
||||
|
||||
var (
|
||||
@ -89,6 +85,11 @@ var (
|
||||
DefaultMTU = 1350
|
||||
)
|
||||
|
||||
var (
|
||||
DefaultExternalResolver Resolver
|
||||
DefaultDNSServer = "114.114.114.114:53"
|
||||
)
|
||||
|
||||
// SetLogger sets a new logger for internal log system.
|
||||
func SetLogger(logger log.Logger) {
|
||||
log.DefaultLogger = logger
|
||||
|
Loading…
Reference in New Issue
Block a user