fixed all known bugs

This commit is contained in:
nadoo 2017-07-29 18:15:22 +08:00
parent f6941b98d8
commit 1ba0f38c9e
6 changed files with 25 additions and 16 deletions

View File

@ -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
View File

@ -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

View File

@ -1 +0,0 @@
package main

12
ss.go
View File

@ -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)

View File

@ -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}
}

View File

@ -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)