mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-12-20 00:50:06 +08:00
chore: apply ntp time function more place
This commit is contained in:
parent
57e14e5b62
commit
a0f1ac4ef5
@ -12,6 +12,7 @@ import (
|
|||||||
|
|
||||||
"github.com/metacubex/mihomo/common/once"
|
"github.com/metacubex/mihomo/common/once"
|
||||||
C "github.com/metacubex/mihomo/constant"
|
C "github.com/metacubex/mihomo/constant"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
)
|
)
|
||||||
|
|
||||||
var globalCertPool *x509.CertPool
|
var globalCertPool *x509.CertPool
|
||||||
@ -110,6 +111,7 @@ func GetTLSConfig(opt Option) (tlsConfig *tls.Config, err error) {
|
|||||||
if tlsConfig == nil {
|
if tlsConfig == nil {
|
||||||
tlsConfig = &tls.Config{}
|
tlsConfig = &tls.Config{}
|
||||||
}
|
}
|
||||||
|
tlsConfig.Time = ntp.Now
|
||||||
|
|
||||||
if opt.ZeroTrust {
|
if opt.ZeroTrust {
|
||||||
tlsConfig.RootCAs = zeroTrustCertPool()
|
tlsConfig.RootCAs = zeroTrustCertPool()
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import (
|
|||||||
tlsC "github.com/metacubex/mihomo/component/tls"
|
tlsC "github.com/metacubex/mihomo/component/tls"
|
||||||
C "github.com/metacubex/mihomo/constant"
|
C "github.com/metacubex/mihomo/constant"
|
||||||
"github.com/metacubex/mihomo/log"
|
"github.com/metacubex/mihomo/log"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/tunnel/statistic"
|
"github.com/metacubex/mihomo/tunnel/statistic"
|
||||||
|
|
||||||
"github.com/go-chi/chi/v5"
|
"github.com/go-chi/chi/v5"
|
||||||
@ -201,7 +202,7 @@ func startTLS(cfg *Config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Infoln("RESTful API tls listening at: %s", l.Addr().String())
|
log.Infoln("RESTful API tls listening at: %s", l.Addr().String())
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
tlsConfig.NextProtos = []string{"h2", "http/1.1"}
|
tlsConfig.NextProtos = []string{"h2", "http/1.1"}
|
||||||
tlsConfig.Certificates = []tlsC.Certificate{tlsC.UCertificate(cert)}
|
tlsConfig.Certificates = []tlsC.Certificate{tlsC.UCertificate(cert)}
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import (
|
|||||||
C "github.com/metacubex/mihomo/constant"
|
C "github.com/metacubex/mihomo/constant"
|
||||||
LC "github.com/metacubex/mihomo/listener/config"
|
LC "github.com/metacubex/mihomo/listener/config"
|
||||||
"github.com/metacubex/mihomo/listener/sing"
|
"github.com/metacubex/mihomo/listener/sing"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/anytls/padding"
|
"github.com/metacubex/mihomo/transport/anytls/padding"
|
||||||
"github.com/metacubex/mihomo/transport/anytls/session"
|
"github.com/metacubex/mihomo/transport/anytls/session"
|
||||||
|
|
||||||
@ -42,7 +43,7 @@ func New(config LC.AnyTLSServer, tunnel C.Tunnel, additions ...inbound.Addition)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
if config.Certificate != "" && config.PrivateKey != "" {
|
if config.Certificate != "" && config.PrivateKey != "" {
|
||||||
cert, err := ca.LoadTLSKeyPair(config.Certificate, config.PrivateKey, C.Path)
|
cert, err := ca.LoadTLSKeyPair(config.Certificate, config.PrivateKey, C.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import (
|
|||||||
authStore "github.com/metacubex/mihomo/listener/auth"
|
authStore "github.com/metacubex/mihomo/listener/auth"
|
||||||
LC "github.com/metacubex/mihomo/listener/config"
|
LC "github.com/metacubex/mihomo/listener/config"
|
||||||
"github.com/metacubex/mihomo/listener/reality"
|
"github.com/metacubex/mihomo/listener/reality"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Listener struct {
|
type Listener struct {
|
||||||
@ -65,7 +66,7 @@ func NewWithConfig(config LC.AuthServer, tunnel C.Tunnel, additions ...inbound.A
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
var realityBuilder *reality.Builder
|
var realityBuilder *reality.Builder
|
||||||
|
|
||||||
if config.Certificate != "" && config.PrivateKey != "" {
|
if config.Certificate != "" && config.PrivateKey != "" {
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import (
|
|||||||
"github.com/metacubex/mihomo/listener/http"
|
"github.com/metacubex/mihomo/listener/http"
|
||||||
"github.com/metacubex/mihomo/listener/reality"
|
"github.com/metacubex/mihomo/listener/reality"
|
||||||
"github.com/metacubex/mihomo/listener/socks"
|
"github.com/metacubex/mihomo/listener/socks"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/socks4"
|
"github.com/metacubex/mihomo/transport/socks4"
|
||||||
"github.com/metacubex/mihomo/transport/socks5"
|
"github.com/metacubex/mihomo/transport/socks5"
|
||||||
)
|
)
|
||||||
@ -61,7 +62,7 @@ func NewWithConfig(config LC.AuthServer, tunnel C.Tunnel, additions ...inbound.A
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
var realityBuilder *reality.Builder
|
var realityBuilder *reality.Builder
|
||||||
|
|
||||||
if config.Certificate != "" && config.PrivateKey != "" {
|
if config.Certificate != "" && config.PrivateKey != "" {
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import (
|
|||||||
LC "github.com/metacubex/mihomo/listener/config"
|
LC "github.com/metacubex/mihomo/listener/config"
|
||||||
"github.com/metacubex/mihomo/listener/sing"
|
"github.com/metacubex/mihomo/listener/sing"
|
||||||
"github.com/metacubex/mihomo/log"
|
"github.com/metacubex/mihomo/log"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
|
|
||||||
"github.com/metacubex/sing-quic/hysteria2"
|
"github.com/metacubex/sing-quic/hysteria2"
|
||||||
|
|
||||||
@ -61,6 +62,7 @@ func New(config LC.Hysteria2Server, tunnel C.Tunnel, additions ...inbound.Additi
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
tlsConfig := &tlsC.Config{
|
tlsConfig := &tlsC.Config{
|
||||||
|
Time: ntp.Now,
|
||||||
MinVersion: tlsC.VersionTLS13,
|
MinVersion: tlsC.VersionTLS13,
|
||||||
}
|
}
|
||||||
tlsConfig.Certificates = []tlsC.Certificate{tlsC.UCertificate(cert)}
|
tlsConfig.Certificates = []tlsC.Certificate{tlsC.UCertificate(cert)}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import (
|
|||||||
LC "github.com/metacubex/mihomo/listener/config"
|
LC "github.com/metacubex/mihomo/listener/config"
|
||||||
"github.com/metacubex/mihomo/listener/reality"
|
"github.com/metacubex/mihomo/listener/reality"
|
||||||
"github.com/metacubex/mihomo/listener/sing"
|
"github.com/metacubex/mihomo/listener/sing"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/gun"
|
"github.com/metacubex/mihomo/transport/gun"
|
||||||
"github.com/metacubex/mihomo/transport/vless/encryption"
|
"github.com/metacubex/mihomo/transport/vless/encryption"
|
||||||
mihomoVMess "github.com/metacubex/mihomo/transport/vmess"
|
mihomoVMess "github.com/metacubex/mihomo/transport/vmess"
|
||||||
@ -75,7 +76,7 @@ func New(config LC.VlessServer, tunnel C.Tunnel, additions ...inbound.Addition)
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
var realityBuilder *reality.Builder
|
var realityBuilder *reality.Builder
|
||||||
var httpServer http.Server
|
var httpServer http.Server
|
||||||
|
|
||||||
|
|||||||
@ -76,7 +76,7 @@ func New(config LC.VmessServer, tunnel C.Tunnel, additions ...inbound.Addition)
|
|||||||
|
|
||||||
sl = &Listener{false, config, nil, service}
|
sl = &Listener{false, config, nil, service}
|
||||||
|
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
var realityBuilder *reality.Builder
|
var realityBuilder *reality.Builder
|
||||||
var httpServer http.Server
|
var httpServer http.Server
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import (
|
|||||||
authStore "github.com/metacubex/mihomo/listener/auth"
|
authStore "github.com/metacubex/mihomo/listener/auth"
|
||||||
LC "github.com/metacubex/mihomo/listener/config"
|
LC "github.com/metacubex/mihomo/listener/config"
|
||||||
"github.com/metacubex/mihomo/listener/reality"
|
"github.com/metacubex/mihomo/listener/reality"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/socks4"
|
"github.com/metacubex/mihomo/transport/socks4"
|
||||||
"github.com/metacubex/mihomo/transport/socks5"
|
"github.com/metacubex/mihomo/transport/socks5"
|
||||||
)
|
)
|
||||||
@ -60,7 +61,7 @@ func NewWithConfig(config LC.AuthServer, tunnel C.Tunnel, additions ...inbound.A
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
var realityBuilder *reality.Builder
|
var realityBuilder *reality.Builder
|
||||||
|
|
||||||
if config.Certificate != "" && config.PrivateKey != "" {
|
if config.Certificate != "" && config.PrivateKey != "" {
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import (
|
|||||||
LC "github.com/metacubex/mihomo/listener/config"
|
LC "github.com/metacubex/mihomo/listener/config"
|
||||||
"github.com/metacubex/mihomo/listener/reality"
|
"github.com/metacubex/mihomo/listener/reality"
|
||||||
"github.com/metacubex/mihomo/listener/sing"
|
"github.com/metacubex/mihomo/listener/sing"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/gun"
|
"github.com/metacubex/mihomo/transport/gun"
|
||||||
"github.com/metacubex/mihomo/transport/shadowsocks/core"
|
"github.com/metacubex/mihomo/transport/shadowsocks/core"
|
||||||
"github.com/metacubex/mihomo/transport/socks5"
|
"github.com/metacubex/mihomo/transport/socks5"
|
||||||
@ -70,7 +71,7 @@ func New(config LC.TrojanServer, tunnel C.Tunnel, additions ...inbound.Addition)
|
|||||||
}
|
}
|
||||||
sl = &Listener{false, config, nil, keys, pickCipher, h}
|
sl = &Listener{false, config, nil, keys, pickCipher, h}
|
||||||
|
|
||||||
tlsConfig := &tlsC.Config{}
|
tlsConfig := &tlsC.Config{Time: ntp.Now}
|
||||||
var realityBuilder *reality.Builder
|
var realityBuilder *reality.Builder
|
||||||
var httpServer http.Server
|
var httpServer http.Server
|
||||||
|
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import (
|
|||||||
LC "github.com/metacubex/mihomo/listener/config"
|
LC "github.com/metacubex/mihomo/listener/config"
|
||||||
"github.com/metacubex/mihomo/listener/sing"
|
"github.com/metacubex/mihomo/listener/sing"
|
||||||
"github.com/metacubex/mihomo/log"
|
"github.com/metacubex/mihomo/log"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/socks5"
|
"github.com/metacubex/mihomo/transport/socks5"
|
||||||
"github.com/metacubex/mihomo/transport/tuic"
|
"github.com/metacubex/mihomo/transport/tuic"
|
||||||
|
|
||||||
@ -53,6 +54,7 @@ func New(config LC.TuicServer, tunnel C.Tunnel, additions ...inbound.Addition) (
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
tlsConfig := &tlsC.Config{
|
tlsConfig := &tlsC.Config{
|
||||||
|
Time: ntp.Now,
|
||||||
MinVersion: tlsC.VersionTLS13,
|
MinVersion: tlsC.VersionTLS13,
|
||||||
}
|
}
|
||||||
tlsConfig.Certificates = []tlsC.Certificate{tlsC.UCertificate(cert)}
|
tlsConfig.Certificates = []tlsC.Certificate{tlsC.UCertificate(cert)}
|
||||||
|
|||||||
@ -6,9 +6,9 @@ import (
|
|||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/metacubex/mihomo/common/pool"
|
"github.com/metacubex/mihomo/common/pool"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -145,7 +145,7 @@ func makeClientHelloMsg(data []byte, server string) []byte {
|
|||||||
buf.Write([]byte{0x03, 0x03})
|
buf.Write([]byte{0x03, 0x03})
|
||||||
|
|
||||||
// random with timestamp, sid len, sid
|
// random with timestamp, sid len, sid
|
||||||
binary.Write(buf, binary.BigEndian, uint32(time.Now().Unix()))
|
binary.Write(buf, binary.BigEndian, uint32(ntp.Now().Unix()))
|
||||||
buf.Write(random)
|
buf.Write(random)
|
||||||
buf.WriteByte(32)
|
buf.WriteByte(32)
|
||||||
buf.Write(sessionID)
|
buf.Write(sessionID)
|
||||||
|
|||||||
@ -7,9 +7,9 @@ import (
|
|||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/metacubex/mihomo/common/pool"
|
"github.com/metacubex/mihomo/common/pool"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/ssr/tools"
|
"github.com/metacubex/mihomo/transport/ssr/tools"
|
||||||
|
|
||||||
"github.com/metacubex/randv2"
|
"github.com/metacubex/randv2"
|
||||||
@ -182,7 +182,7 @@ func packData(buf *bytes.Buffer, data []byte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *tls12Ticket) packAuthData(buf *bytes.Buffer) {
|
func (t *tls12Ticket) packAuthData(buf *bytes.Buffer) {
|
||||||
binary.Write(buf, binary.BigEndian, uint32(time.Now().Unix()))
|
binary.Write(buf, binary.BigEndian, uint32(ntp.Now().Unix()))
|
||||||
tools.AppendRandBytes(buf, 18)
|
tools.AppendRandBytes(buf, 18)
|
||||||
buf.Write(t.hmacSHA1(buf.Bytes()[buf.Len()-22:])[:10])
|
buf.Write(t.hmacSHA1(buf.Bytes()[buf.Len()-22:])[:10])
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,10 +8,10 @@ import (
|
|||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/metacubex/mihomo/common/pool"
|
"github.com/metacubex/mihomo/common/pool"
|
||||||
"github.com/metacubex/mihomo/log"
|
"github.com/metacubex/mihomo/log"
|
||||||
|
"github.com/metacubex/mihomo/ntp"
|
||||||
"github.com/metacubex/mihomo/transport/shadowsocks/core"
|
"github.com/metacubex/mihomo/transport/shadowsocks/core"
|
||||||
|
|
||||||
"github.com/metacubex/randv2"
|
"github.com/metacubex/randv2"
|
||||||
@ -49,7 +49,7 @@ func (a *authData) next() *authData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *authData) putAuthData(buf *bytes.Buffer) {
|
func (a *authData) putAuthData(buf *bytes.Buffer) {
|
||||||
binary.Write(buf, binary.LittleEndian, uint32(time.Now().Unix()))
|
binary.Write(buf, binary.LittleEndian, uint32(ntp.Now().Unix()))
|
||||||
buf.Write(a.clientID[:])
|
buf.Write(a.clientID[:])
|
||||||
binary.Write(buf, binary.LittleEndian, a.connectionID)
|
binary.Write(buf, binary.LittleEndian, a.connectionID)
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@ func (a *authData) putAuthData(buf *bytes.Buffer) {
|
|||||||
func (a *authData) putEncryptedData(b *bytes.Buffer, userKey []byte, paddings [2]int, salt string) error {
|
func (a *authData) putEncryptedData(b *bytes.Buffer, userKey []byte, paddings [2]int, salt string) error {
|
||||||
encrypt := pool.Get(16)
|
encrypt := pool.Get(16)
|
||||||
defer pool.Put(encrypt)
|
defer pool.Put(encrypt)
|
||||||
binary.LittleEndian.PutUint32(encrypt, uint32(time.Now().Unix()))
|
binary.LittleEndian.PutUint32(encrypt, uint32(ntp.Now().Unix()))
|
||||||
copy(encrypt[4:], a.clientID[:])
|
copy(encrypt[4:], a.clientID[:])
|
||||||
binary.LittleEndian.PutUint32(encrypt[8:], a.connectionID)
|
binary.LittleEndian.PutUint32(encrypt[8:], a.connectionID)
|
||||||
binary.LittleEndian.PutUint16(encrypt[12:], uint16(paddings[0]))
|
binary.LittleEndian.PutUint16(encrypt[12:], uint16(paddings[0]))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user