分享自用代理工具 - glider

2017 年 7 月 13 日
 nadoo

一直是在 linux 软路由上做透明代理使用,最近整理了一下,放在 github 上,分享给大家,或许有人用得着.

之前看到 v2 有人找以下几类工具,用 glider 可以轻松实现:

socks5 转 http
glider -l http://:8080 -f socks5://127.0.0.1:1080 -v
dns: udp 转 tcp
glider -l dnstun://:53=114.114.114.114:53 -v

这样可以在本地生成一个 dns 服务,可以 nslookup www.baidu.com 127.0.0.1 测试

glider -l dnstun://:53=8.8.8.8:53 -f ss://method:pass@server1:port1 -v

当然,一般是为了在国外解析,只要加上-f 参数,指定转发代理,就会通过转发代理去请求 8.8.8.8,作用你懂的...我一般用来配合 dnsmasq

同一个端口提供 http 和 socks5 代理服务
glider -l :8443 -f ss://method:pass@server1:port1 -v

如果需要就可以加上-f 参数转发到远端服务器

多个远端服务器,代理链(一个-f,逗号,分隔)
glider  -l redir://:1081 -l dnstun://:53=8.8.8.8:53 -f ss://method:pass@server1:port1,ss://method:pass@server2:port2

这样可以先通过 server1 做跳板,再连接 server2 进行转发

多个远端服务器,轮叫或高可用模式
glider  -l :8443 -f ss://method:pass@server1:port1 -f ss://method:pass@server2:port2 -s rr
glider  -l :8443 -f ss://method:pass@server1:port1 -f ss://method:pass@server2:port2 -s ha

项目地址

能力有限,代码水平也不高,期待大家指正...

11096 次点击
所在节点    分享发现
58 条回复
felixonmars
2017 年 7 月 31 日
我是用代码直接编译的,没有用直接提供的 binary 哈,0.3 版本是重新 tag 了还是只是重新编译了?
nadoo
2017 年 7 月 31 日
@felixonmars 重发 binary 的时候重新 tag 过,目前 github 上那个 tag 和 binary 都是对的.
felixonmars
2017 年 7 月 31 日
好的,那我打的应该是修正后的 :)
nadoo
2017 年 8 月 23 日
发一个编译好的开发中的版本,添加了一个"list"。

打开 rule 文件,在 forward 行加入你的代理服务器信息并取消行首注释(删除#),然后可以在浏览器中把 ip:8443 作为全局代理, 实现默认直连,list 中的网站使用上级代理;(类似浏览器 pac 的能力,在 glider 中实现了)
https://github.com/nadoo/glider/files/1245821/glider-0.4alpha.zip

有兴趣的同学可以先试一下
nadoo
2018 年 1 月 23 日
@wwqgtxx v0.5.0,支持 udp,udp 也支持代理链,支持多上级代理 rr 转发模式;上级代理可以是 socks5 或者 ss
Tink
2018 年 4 月 19 日
我想问下楼主这个和 gost 在性能上优势大否?
nadoo
2018 年 4 月 26 日
@Tink 才看到. 我没有对比过性能。我这里一直是跑在网关服务器上,资源占用不高。
defunct9
2018 年 5 月 8 日
@nadoo 请教楼主
我有两个 dns server , 一个带 AD 过滤,一个不带。
所以想架一个服务器,根据 client 来源 ip 不同来分发到后端不同的 DNS server
仔细看了半天文档,理论应该可以实现。

但是怎么配置呢?
nadoo
2018 年 5 月 8 日
@defunct9 目前不能根据来源 ip 设置规则,只能根据目的 ip 来设;你这个需求,可能在网关上根据 iptables 策略来转发好一点。 后面我考虑下,也可以在 glider 规则里面加入来源 ip 的判断。
yuchenr
2018 年 7 月 11 日
我来挖个坟。
简单食用了下,负载均衡对比 gost 多了 ha,并且支持 AEAD 算法。
另外是否支持 simple-obfs ?
nadoo
2018 年 7 月 11 日
@yuchenr 目前正在加 vmess 支持,后续计划是 websocket,再往后想把 ssr 和 ss 那两个第三方 lib 重写整合一下、obfs 可以一起考虑
nadoo
2018 年 12 月 14 日
@yuchenr 现在支持 simple-obfs 了 https://github.com/nadoo/glider

```bash
glider -verbose -listen :8443 -forward "simple-obfs://1.1.1.1:443?type=tls&host=apple.com,ss://AEAD_CHACHA20_POLY1305:pass@"
```
johnkiller
2019 年 1 月 8 日
太良心了,正好找到这里,比 gost 好用,感谢作者,也感谢 gost 作者!
johnkiller
2019 年 3 月 14 日
作者你好,我用 glider 有好几个月了 ,发现一个现象,就是随着流量请求的增大,glider 占用内存几乎是 200-400m 的样子了,而且似乎不会被释放掉。。。但是 github 同类开源软件 goproxy 内存占用几乎稳定在 30m 一下(流量很大也是),但是功能不如 glider 强大,现在已经离不开 glider 了,如果可以希望作者能优化一下(感激

题外话:
我发现用 sstap 连接 glider 的代理 udp 端口一直都是我设置的端口。
类似:
>> 服务器绑定在 172.16.*.*:1080.
johnkiller
2019 年 3 月 14 日
@johnkiller 一下点了回复了,继续上一楼
用 goproxy 代理的时候每次连接 udp 端口都是随机的,而不是固定我给的 1080,会不会是这个原因
>> 服务器绑定在 172.16.*.*:62961.
nadoo
2019 年 3 月 14 日
@johnkiller 感谢反馈!我平常基本不用 udp,所以可能没有注意到这个问题。。。请问 你是怎么使用 glider 呢?本地监听 socks5 ?用到 udptun 了吗?
foxconndmd
2021 年 3 月 12 日
支持远程转发吗?即可通过代理链将本地端口映射到远程服务器上。
funnypc
2025 年 11 月 24 日
@nadoo 烦请指导一下

8442:local <- udp2raw -> remote:8443 ,udp2raw 承载 wireguard 正常

想让此链路以 socks5 监听承载数据,发现无论是 gost 还是 glider 都无法建立稳定连接
下面的方式都不行,或者 curl 提示错误,或者开始传输后中断
curl: (18) transfer closed with outstanding read data remaining
curl: (28) SSL connection timeout


使用 gost:
/usr/local/bin/gost -L socks5://:1052?udp=true -F socks5://127.0.0.1:8442?udp=true
/usr/local/bin/gost -L socks5://:8443?udp=true


/usr/local/bin/gost -L socks5://:1052?udp=true -F kcp://127.0.0.1:8442?c=/etc/gost/kcp.json
/usr/local/bin/gost -L socks5://:8443?udp=true

kcp.json 中 mtu=1200

使用 glider
glider -listen socks5://:1052 -forward socks5://127.0.0.1:8442
glider -listen socks5://:8443

glider -listen "kcp://:8443?crypt=none&mtu=1200"
glider -listen socks5://:1052 -forward "kcp://127.0.0.1:8442?crypt=none&mtu=1200"

glider -listen smux://:8443
glider -listen socks5://:1052 -forward smux://127.0.0.1:8442

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/375186

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX