mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 01:15:41 +08:00
fixed all known bugs
This commit is contained in:
parent
f6941b98d8
commit
1ba0f38c9e
12
README.md
12
README.md
@ -43,15 +43,21 @@ sudo pacman -S glider
|
||||
```
|
||||
|
||||
## Run
|
||||
command line:
|
||||
```bash
|
||||
glider -listen :8443 -verbose
|
||||
```
|
||||
|
||||
with config file:
|
||||
config file:
|
||||
```bash
|
||||
glider -config CONFIGPATH
|
||||
```
|
||||
|
||||
command line with config file:
|
||||
```bash
|
||||
glider -config CONFIGPATH -listen :8080 -verbose
|
||||
```
|
||||
|
||||
## Usage
|
||||
```bash
|
||||
glider v0.2 usage:
|
||||
@ -105,7 +111,7 @@ Examples:
|
||||
-listen on :8443, serve as http/socks5 proxy on the same port.
|
||||
|
||||
glider -listen ss://AEAD_CHACHA20_POLY1305:pass@:8443
|
||||
-listen on 0.0.0.0:8443 as a shadowsocks server.
|
||||
-listen on 0.0.0.0:8443 as a ss server.
|
||||
|
||||
glider -listen socks5://:1080 -verbose
|
||||
-listen on :1080 as a socks5 proxy server, in verbose mode.
|
||||
@ -165,7 +171,7 @@ checkhost=www.apple.com:443
|
||||
# check duration
|
||||
checkduration=30
|
||||
```
|
||||
See [glider.conf.example](https://github.com/nadoo/glider/blob/master/glider.conf.example)
|
||||
See [glider.conf.example](glider.conf.example)
|
||||
|
||||
## Service
|
||||
- systemd: [https://github.com/nadoo/glider/blob/master/systemd/](https://github.com/nadoo/glider/blob/master/systemd/)
|
||||
|
10
main.go
10
main.go
@ -12,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
// VERSION .
|
||||
const VERSION = "0.2"
|
||||
const VERSION = "0.2.1"
|
||||
|
||||
var conf struct {
|
||||
Verbose bool
|
||||
@ -79,7 +79,7 @@ func usage() {
|
||||
fmt.Fprintf(os.Stderr, " -listen on :8443, serve as http/socks5 proxy on the same port.\n")
|
||||
fmt.Fprintf(os.Stderr, "\n")
|
||||
fmt.Fprintf(os.Stderr, " "+app+" -listen ss://AEAD_CHACHA20_POLY1305:pass@:8443\n")
|
||||
fmt.Fprintf(os.Stderr, " -listen on 0.0.0.0:8443 as a shadowsocks server.\n")
|
||||
fmt.Fprintf(os.Stderr, " -listen on 0.0.0.0:8443 as a ss server.\n")
|
||||
fmt.Fprintf(os.Stderr, "\n")
|
||||
fmt.Fprintf(os.Stderr, " "+app+" -listen socks5://:1080 -verbose\n")
|
||||
fmt.Fprintf(os.Stderr, " -listen on :1080 as a socks5 proxy server, in verbose mode.\n")
|
||||
@ -161,6 +161,12 @@ func main() {
|
||||
go local.ListenAndServe()
|
||||
}
|
||||
|
||||
if len(forwarders) > 1 {
|
||||
for _, forward := range forwarders {
|
||||
go check(forward, conf.CheckHost, conf.CheckDuration)
|
||||
}
|
||||
}
|
||||
|
||||
sigCh := make(chan os.Signal, 1)
|
||||
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sigCh
|
||||
|
12
ss.go
12
ss.go
@ -9,8 +9,8 @@ import (
|
||||
"github.com/shadowsocks/go-shadowsocks2/core"
|
||||
)
|
||||
|
||||
// Shadowsocks
|
||||
type shadowsocks struct {
|
||||
// ss
|
||||
type ss struct {
|
||||
Proxy
|
||||
core.StreamConnCipher
|
||||
}
|
||||
@ -22,7 +22,7 @@ func SSProxy(method, pass string, upProxy Proxy) (Proxy, error) {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
s := &shadowsocks{
|
||||
s := &ss{
|
||||
Proxy: upProxy,
|
||||
StreamConnCipher: ciph,
|
||||
}
|
||||
@ -31,7 +31,7 @@ func SSProxy(method, pass string, upProxy Proxy) (Proxy, error) {
|
||||
}
|
||||
|
||||
// ListenAndServe shadowsocks requests as a server.
|
||||
func (s *shadowsocks) ListenAndServe() {
|
||||
func (s *ss) ListenAndServe() {
|
||||
l, err := net.Listen("tcp", s.Addr())
|
||||
if err != nil {
|
||||
logf("failed to listen on %s: %v", s.Addr(), err)
|
||||
@ -50,7 +50,7 @@ func (s *shadowsocks) ListenAndServe() {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *shadowsocks) Serve(c net.Conn) {
|
||||
func (s *ss) Serve(c net.Conn) {
|
||||
defer c.Close()
|
||||
|
||||
if c, ok := c.(*net.TCPConn); ok {
|
||||
@ -85,7 +85,7 @@ func (s *shadowsocks) Serve(c net.Conn) {
|
||||
}
|
||||
|
||||
// Dial connects to the address addr on the network net via the proxy.
|
||||
func (s *shadowsocks) Dial(network, addr string) (net.Conn, error) {
|
||||
func (s *ss) Dial(network, addr string) (net.Conn, error) {
|
||||
target := ParseAddr(addr)
|
||||
if target == nil {
|
||||
return nil, errors.New("Unable to parse address: " + addr)
|
||||
|
@ -20,9 +20,7 @@ func newStrategyProxy(addr string, forwarders []Proxy) Proxy {
|
||||
return newProxy(addr, forwarders[0])
|
||||
}
|
||||
|
||||
for _, forward := range forwarders {
|
||||
go check(forward, conf.CheckHost, conf.CheckDuration)
|
||||
}
|
||||
|
||||
|
||||
return &strategyProxy{addr: addr, forwarders: forwarders}
|
||||
}
|
||||
|
@ -24,4 +24,4 @@ enable and start service: glider@***server***
|
||||
systemctl enable glider@server
|
||||
systemctl start glider@server
|
||||
```
|
||||
See [glider@.service](https://github.com/nadoo/glider/blob/master/systemd/glider%40.service)
|
||||
See [glider@.service](systemd/glider%40.service)
|
||||
|
Loading…
Reference in New Issue
Block a user