mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 01:15:41 +08:00
dns: set ttl to minttl config for custom dns recordings
This commit is contained in:
parent
3c50c46eb9
commit
c89d6018cf
4
.gitignore
vendored
4
.gitignore
vendored
@ -17,6 +17,10 @@
|
||||
# custom
|
||||
.idea
|
||||
.vscode
|
||||
|
||||
dist
|
||||
.goreleaser.yml
|
||||
|
||||
*.zip
|
||||
/*.conf
|
||||
/*.rule
|
||||
|
@ -1,5 +1,5 @@
|
||||
language: go
|
||||
|
||||
go:
|
||||
- "1.12.x"
|
||||
# - "1.12.x"
|
||||
- master
|
||||
|
@ -277,7 +277,7 @@ func (c *Client) GenResponse(domain string, ip string) (*Message, error) {
|
||||
m := NewMessage(0, Response)
|
||||
m.SetQuestion(NewQuestion(qtype, domain))
|
||||
rr := &RR{NAME: domain, TYPE: qtype, CLASS: ClassINET,
|
||||
RDLENGTH: rdlen, RDATA: rdata}
|
||||
TTL: uint32(c.config.MinTTL), RDLENGTH: rdlen, RDATA: rdata}
|
||||
m.AddAnswer(rr)
|
||||
|
||||
return m, nil
|
||||
|
42
go.mod
42
go.mod
@ -3,22 +3,30 @@ module github.com/nadoo/glider
|
||||
go 1.12
|
||||
|
||||
require (
|
||||
github.com/Yawning/chacha20 v0.0.0-20170904085104-e3b1f968fc63
|
||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da
|
||||
github.com/dgryski/go-camellia v0.0.0-20140412174459-3be6b3054dd1
|
||||
github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb
|
||||
github.com/dgryski/go-rc2 v0.0.0-20150621095337-8a9021637152
|
||||
github.com/klauspost/cpuid v0.0.0-20181111194502-c640019ed4bd
|
||||
github.com/klauspost/reedsolomon v1.7.0
|
||||
github.com/nadoo/conflag v0.0.0-20170825123151-42f66d5216f8
|
||||
github.com/nadoo/go-shadowsocks2 v0.0.0-20181124095303-ae1cb5e900ea
|
||||
github.com/pkg/errors v0.0.0-20181023235946-059132a15dd0
|
||||
github.com/Yawning/chacha20 v0.0.0-20170904085104-e3b1f968fc63 // indirect
|
||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
||||
github.com/dgryski/go-camellia v0.0.0-20140412174459-3be6b3054dd1 // indirect
|
||||
github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb // indirect
|
||||
github.com/dgryski/go-rc2 v0.0.0-20150621095337-8a9021637152 // indirect
|
||||
github.com/ebfe/rc2 v0.0.0-20131011165748-24b9757f5521 // indirect
|
||||
github.com/klauspost/cpuid v1.2.0 // indirect
|
||||
github.com/klauspost/reedsolomon v1.8.0 // indirect
|
||||
github.com/nadoo/conflag v0.1.0
|
||||
github.com/nadoo/go-shadowsocks2 v0.1.0
|
||||
github.com/pkg/errors v0.8.1 // indirect
|
||||
github.com/sun8911879/shadowsocksR v0.0.0-20180529042039-da20fda4804f
|
||||
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161
|
||||
github.com/templexxx/xor v0.0.0-20181023030647-4e92f724b73b
|
||||
github.com/tjfoc/gmsm v0.0.0-20180808033842-0b26aafa7604
|
||||
github.com/xtaci/kcp-go v4.3.2+incompatible
|
||||
golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85
|
||||
golang.org/x/net v0.0.0-20181129055619-fae4c4e3ad76
|
||||
golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789
|
||||
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect
|
||||
github.com/templexxx/xor v0.0.0-20181023030647-4e92f724b73b // indirect
|
||||
github.com/tjfoc/gmsm v1.0.1 // indirect
|
||||
github.com/xtaci/kcp-go v5.0.4+incompatible
|
||||
golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc
|
||||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3 // indirect
|
||||
golang.org/x/sys v0.0.0-20190105165716-badf5585203e // indirect
|
||||
)
|
||||
|
||||
// Replace dependency modules with local developing copy
|
||||
// use `go list -m all` to confirm the final module used
|
||||
// replace (
|
||||
// github.com/nadoo/conflag => ../conflag
|
||||
// github.com/nadoo/go-shadowsocks2 => ../go-shadowsocks2
|
||||
// )
|
||||
|
54
go.sum
54
go.sum
@ -8,29 +8,47 @@ github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb h1:zXpN5126w/mhECT
|
||||
github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb/go.mod h1:F7WkpqJj9t98ePxB/WJGQTIDeOVPuSJ3qdn6JUjg170=
|
||||
github.com/dgryski/go-rc2 v0.0.0-20150621095337-8a9021637152 h1:ED31mPIxDJnrLt9W9dH5xgd/6KjzEACKHBVGQ33czc0=
|
||||
github.com/dgryski/go-rc2 v0.0.0-20150621095337-8a9021637152/go.mod h1:I9fhc/EvSg88cDxmfQ47v35Ssz9rlFunL/KY0A1JAYI=
|
||||
github.com/klauspost/cpuid v0.0.0-20181111194502-c640019ed4bd h1:XiWcNooqIW6d6JFGhzdK+Ay8Rmh5YIN+a6JTKpZ6g40=
|
||||
github.com/klauspost/cpuid v0.0.0-20181111194502-c640019ed4bd/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||
github.com/klauspost/reedsolomon v1.7.0 h1:pLFmRKGko2ZieiTGyo9DahLCIuljyxm+Zzhz/fYEonE=
|
||||
github.com/klauspost/reedsolomon v1.7.0/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4=
|
||||
github.com/nadoo/conflag v0.0.0-20170825123151-42f66d5216f8 h1:mm9oZNuKp36fi2PNxWnBw/EgXoP46kVqGxo8nxgBfP8=
|
||||
github.com/nadoo/conflag v0.0.0-20170825123151-42f66d5216f8/go.mod h1:C3xchp3tIA3J2haACChSHFrlih7w00f31DXfjVUQa+0=
|
||||
github.com/nadoo/go-shadowsocks2 v0.0.0-20181124095303-ae1cb5e900ea h1:+9ALR2emLaoneTHPScsv0D/d2AwENm2mZSAKWHgsXYI=
|
||||
github.com/nadoo/go-shadowsocks2 v0.0.0-20181124095303-ae1cb5e900ea/go.mod h1:J0B/QoRZtqUwE9BJqkP3F3M5+N8t+b5fXeNrkUarveM=
|
||||
github.com/pkg/errors v0.0.0-20181023235946-059132a15dd0 h1:R+lX9nKwNd1n7UE5SQAyoorREvRn3aLF6ZndXBoIWqY=
|
||||
github.com/pkg/errors v0.0.0-20181023235946-059132a15dd0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/ebfe/rc2 v0.0.0-20131011165748-24b9757f5521 h1:fBHFH+Y/GPGFGo7LIrErQc3p2MeAhoIQNgaxPWYsSxk=
|
||||
github.com/ebfe/rc2 v0.0.0-20131011165748-24b9757f5521/go.mod h1:ucvhdsUCE3TH0LoLRb6ShHiJl8e39dGlx6A4g/ujlow=
|
||||
github.com/klauspost/cpuid v1.2.0 h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE=
|
||||
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||
github.com/klauspost/reedsolomon v1.8.0 h1:lvvOkvk64cE1EGbBIgFk7WSOOsI1GexpuLiT7zjab6g=
|
||||
github.com/klauspost/reedsolomon v1.8.0/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4=
|
||||
github.com/nadoo/conflag v0.1.0 h1:m9xSrL0UILGXPCZW66mhW57V2D2IraVpWLNIr2Op8X8=
|
||||
github.com/nadoo/conflag v0.1.0/go.mod h1:C3xchp3tIA3J2haACChSHFrlih7w00f31DXfjVUQa+0=
|
||||
github.com/nadoo/go-shadowsocks2 v0.1.0 h1:NkdUrZrI8uYq8R0YDmHLttLqKt0Z9i7dUKtGvBqZQl8=
|
||||
github.com/nadoo/go-shadowsocks2 v0.1.0/go.mod h1:J0B/QoRZtqUwE9BJqkP3F3M5+N8t+b5fXeNrkUarveM=
|
||||
github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/sun8911879/shadowsocksR v0.0.0-20180529042039-da20fda4804f h1:66c28UIO0JbJi5he9n+QN9Ya0OAW0eKb8Eu02kMSXHI=
|
||||
github.com/sun8911879/shadowsocksR v0.0.0-20180529042039-da20fda4804f/go.mod h1:uEm3LP/z9l1+zfo2FTzUvWnxua7rbrUoGAMiLaHdujk=
|
||||
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU=
|
||||
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU=
|
||||
github.com/templexxx/xor v0.0.0-20181023030647-4e92f724b73b h1:mnG1fcsIB1d/3vbkBak2MM0u+vhGhlQwpeimUi7QncM=
|
||||
github.com/templexxx/xor v0.0.0-20181023030647-4e92f724b73b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4=
|
||||
github.com/tjfoc/gmsm v0.0.0-20180808033842-0b26aafa7604 h1:K9bfwsgZmSD1XbdiOqn4gVdq3I2ej4+rCLNJH2gc8aM=
|
||||
github.com/tjfoc/gmsm v0.0.0-20180808033842-0b26aafa7604/go.mod h1:XxO4hdhhrzAd+G4CjDqaOkd0hUzmtPR/d3EiBBMn/wc=
|
||||
github.com/tjfoc/gmsm v1.0.1 h1:R11HlqhXkDospckjZEihx9SW/2VW0RgdwrykyWMFOQU=
|
||||
github.com/tjfoc/gmsm v1.0.1/go.mod h1:XxO4hdhhrzAd+G4CjDqaOkd0hUzmtPR/d3EiBBMn/wc=
|
||||
github.com/xtaci/kcp-go v4.3.2+incompatible h1:vM5gqHI8p5xa3eXQH279+16fG86gCz/IRamaQvWG+a8=
|
||||
github.com/xtaci/kcp-go v4.3.2+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE=
|
||||
golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85 h1:et7+NAX3lLIk5qUCTA9QelBjGE/NkhzYw/mhnr0s7nI=
|
||||
golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/net v0.0.0-20181129055619-fae4c4e3ad76 h1:xx5MUFyRQRbPk6VjWjIE1epE/K5AoDD8QUN116NCy8k=
|
||||
golang.org/x/net v0.0.0-20181129055619-fae4c4e3ad76/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789 h1:T8D7l6WB3tLu+VpKvw06ieD/OhBi1XpJmG1U/FtttZg=
|
||||
golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
github.com/xtaci/kcp-go v5.0.2+incompatible h1:Nj5VlOVO2gQ+QWgItWA2yP8X+SGxdV3SD8wCDjlmVA4=
|
||||
github.com/xtaci/kcp-go v5.0.2+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE=
|
||||
github.com/xtaci/kcp-go v5.0.4+incompatible h1:zCX9MJxfJcfynNsUdyZnq8mbJVBNvuaZaf47mqd45Mk=
|
||||
github.com/xtaci/kcp-go v5.0.4+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE=
|
||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9 h1:mKdxBk7AujPs8kU4m80U72y/zjbZ3UcXC7dClwKbUI0=
|
||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3 h1:35ZwriXqdZtBGoFgUpW71Z7xz5o23fRpWHFAO2PlnIA=
|
||||
golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc h1:F5tKCVGp+MUAHhKp5MZtGqAlGX3+oCsiL1Q629FL90M=
|
||||
golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/net v0.0.0-20181217023233-e147a9138326 h1:iCzOf0xz39Tstp+Tu/WwyGjUXCk34QhQORRxBeXXTA4=
|
||||
golang.org/x/net v0.0.0-20181217023233-e147a9138326/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3 h1:eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis=
|
||||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/sys v0.0.0-20181218192612-074acd46bca6 h1:MXtOG7w2ND9qNCUZSDBGll/SpVIq7ftozR9I8/JGBHY=
|
||||
golang.org/x/sys v0.0.0-20181218192612-074acd46bca6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190102155601-82a175fd1598 h1:S8GOgffXV1X3fpVG442QRfWOt0iFl79eHJ7OPt725bo=
|
||||
golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190105165716-badf5585203e h1:34JZ+d5RsKTBgJnMpK4m6gzXRZ6H99pKveztnOI3+JA=
|
||||
golang.org/x/sys v0.0.0-20190105165716-badf5585203e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
|
2
main.go
2
main.go
@ -29,7 +29,7 @@ import (
|
||||
)
|
||||
|
||||
// VERSION .
|
||||
const VERSION = "0.6.11"
|
||||
const VERSION = "0.7.0"
|
||||
|
||||
func main() {
|
||||
// read configs
|
||||
|
@ -127,14 +127,20 @@ func (c *Client) NewConn(rc net.Conn, target string) (*Conn, error) {
|
||||
conn.respBodyKey = md5.Sum(conn.reqBodyKey[:])
|
||||
|
||||
// AuthInfo
|
||||
rc.Write(conn.EncodeAuthInfo())
|
||||
|
||||
_, err = rc.Write(conn.EncodeAuthInfo())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// Request
|
||||
req, err := conn.EncodeRequest()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rc.Write(req)
|
||||
|
||||
_, err = rc.Write(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
conn.Conn = rc
|
||||
|
||||
@ -172,9 +178,13 @@ func (c *Conn) EncodeRequest() ([]byte, error) {
|
||||
buf.WriteByte(CmdTCP) // cmd
|
||||
|
||||
// target
|
||||
binary.Write(buf, binary.BigEndian, uint16(c.port)) // port
|
||||
buf.WriteByte(byte(c.atyp)) // atyp
|
||||
buf.Write(c.addr) // addr
|
||||
err := binary.Write(buf, binary.BigEndian, uint16(c.port)) // port
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
buf.WriteByte(byte(c.atyp)) // atyp
|
||||
buf.Write(c.addr) // addr
|
||||
|
||||
// padding
|
||||
if paddingLen > 0 {
|
||||
@ -185,7 +195,10 @@ func (c *Conn) EncodeRequest() ([]byte, error) {
|
||||
|
||||
// F
|
||||
fnv1a := fnv.New32a()
|
||||
fnv1a.Write(buf.Bytes())
|
||||
_, err = fnv1a.Write(buf.Bytes())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
buf.Write(fnv1a.Sum(nil))
|
||||
|
||||
block, err := aes.NewCipher(c.user.CmdKey[:])
|
||||
|
@ -32,41 +32,3 @@ systemctl start glider@server
|
||||
```
|
||||
|
||||
See [glider@.service](glider%40.service)
|
||||
|
||||
### Open file limit
|
||||
|
||||
#### 1. setup system limit
|
||||
|
||||
vim /etc/security/limits.d/unlimited.conf
|
||||
|
||||
```bash
|
||||
* soft nofile unlimited
|
||||
* hard nofile unlimited
|
||||
* soft nproc unlimited
|
||||
* hard nproc unlimited
|
||||
```
|
||||
|
||||
#### 2. change **systemd** limit
|
||||
|
||||
```bash
|
||||
echo DefaultLimitNOFILE=102400 >> /etc/systemd/system.conf
|
||||
echo DefaultLimitNOFILE=102400 >> /etc/systemd/user.conf
|
||||
```
|
||||
|
||||
#### 3. reexec **systemd**
|
||||
|
||||
```bash
|
||||
systemctl daemon-reexec
|
||||
```
|
||||
|
||||
#### 4. restart glider service
|
||||
|
||||
```bash
|
||||
systemctl restart glider@server
|
||||
```
|
||||
|
||||
#### 5. check the limits of PID
|
||||
|
||||
```bash
|
||||
cat /proc/PID/limits
|
||||
```
|
||||
|
@ -6,6 +6,7 @@ After=network.target iptables.service ip6tables.service
|
||||
Type=simple
|
||||
User=nobody
|
||||
Restart=always
|
||||
LimitNOFILE=102400
|
||||
|
||||
# NOTE: change to your glider path
|
||||
ExecStart=/usr/bin/glider -config /etc/glider/%i.conf
|
||||
|
Loading…
Reference in New Issue
Block a user