分享自用代理工具 - glider

2017-07-13 22:31:47 +08:00
 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

项目地址

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

9169 次点击
所在节点    分享发现
57 条回复
ckzx
2017-07-14 14:59:04 +08:00
这个 https 是同理加吗?
nadoo
2017-07-14 16:02:49 +08:00
@ckzx glider 支持的是 http 代理,支持普通 http 和 http connect 方式,connect 方式就可以支持在上面跑 https.
nadoo
2017-07-14 16:06:43 +08:00
@wwqgtxx 我有空研究下 udp over tcp 的支持
designer
2017-07-14 16:09:57 +08:00
资持!
nadoo
2017-07-14 16:15:50 +08:00
@wwqgtxx 可以问下你主要是什么应用要用到 udp 协议呢?我感觉我的场景里面,tcp 能够解决一切问题。。。
wwqgtxx
2017-07-14 16:40:47 +08:00
@nadoo 其实作为我自己写的程序,也是 tcp 就够了,但是实际上还是有很多程序需要用 udp 比如 dns/ntp/quic/skype 之类的,以及各种网络游戏,在这个情况下如果不支持 udp 代理就很蛋疼了
nadoo
2017-07-14 16:43:28 +08:00
@wwqgtxx dns 我会用到,因为 dnsmasq 配合 gfwlist,上级代理只支持 udp 的,所以我简单加了个 dnstun 的解决方案。
其它的我暂时没用到,我考虑一下,这是学习的好机会。-_-!
nadoo
2017-07-15 11:31:27 +08:00
0.1.1 版本,修复了几个重要 bug:
- 代理周期性检查造成打开文件过多(defer 放在 for 循环里面的低级错误)
- 多代理高可用模式不生效

https://github.com/nadoo/glider/releases
nadoo
2017-07-18 19:54:10 +08:00
v0.2.0,添加了简单配置文件的支持:
https://github.com/nadoo/glider/releases

基础的可以了,后面可以安心增加功能了
niuoh
2017-07-19 19:12:05 +08:00
分享一个好用的 http 代理 ip-chi.net
felixonmars
2017-07-21 17:46:38 +08:00
nadoo
2017-07-21 18:12:45 +08:00
@felixonmars 感谢!你在用 glider 吗? 因为 github issue 里有人提出需要配置文件的功能,就在 v0.2.0 加上了,很简单地利用了 go 标准的 flag 包,把配置文件的内容当成命令行参数来解析,这样基本不增加额外依赖,可执行文件大小基本不受影响。可惜 go 的标准包不支持参数的简写,所以顶楼里面的-l、-f 之类的参数,都改成全称-listen, -forward 了,用的时候要注意。
felixonmars
2017-07-21 18:18:22 +08:00
@nadoo 嗯,我在用,已经都在用全称了 :P
nadoo
2017-07-21 18:19:36 +08:00
@felixonmars 因为没试过给发行版打包,如果需要标准化一些东西,例如默认配置文件放在 /etc/glider.conf 之类的,可以指出,我配合修改;
felixonmars
2017-07-21 23:45:42 +08:00
@nadoo 可以给一个标准的 glider.conf.example 我来装 :P 不过我现在是用了 /etc/glider 这个目录来做多配置……
nadoo
2017-07-22 11:32:25 +08:00
@felixonmars 嗯,我看到你打包的文件了,比我的专业多了. :P
nadoo
2017-07-22 11:38:52 +08:00
原本想要把 glider 做成特定针对国内上网环境的工具,集成 gfwlist 更新、策略 dns 转发、策略代理转发、ipset 自动维护、iptables 自动维护等功能,这样在 linux 网关上就可以不依赖 dnsmasq 了.

现在这种形势,可能还是保持 glider 简单、通用更好一些,后面的功能计划还需要慎重考虑;
nadoo
2017-07-30 12:24:28 +08:00
更新 0.3 版本,支持根据目的地设置代理策略(rulefile):
https://github.com/nadoo/glider/releases

配置文件样例:
https://github.com/nadoo/glider/tree/master/examples
nadoo
2017-07-30 13:43:35 +08:00
@felixonmars 我之前发布的 0.3 binary 有点问题,透明代理(redir)无法正常工作,另外 examples 文件夹下的部分配置文件有小 bug,想着没有什么人看到,重新上传了二进制文件。 刚点了一下,没想到 archlinux 的仓库已经更新了,可能需要再次替换更新一下,给你添麻烦了。 谢谢!
nadoo
2017-07-30 13:45:11 +08:00
@felixonmars 不对,还是看错了,你是昨天更新的 0.2.1,嗯,那个版本没有什么明显 bug.

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

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

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

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

© 2021 V2EX