Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Frp | 68,101 | 9 | a day ago | 78 | July 10, 2022 | 97 | apache-2.0 | Go | ||
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. | ||||||||||
Mitmproxy | 31,183 | 423 | 43 | 3 days ago | 53 | June 28, 2022 | 281 | mit | Python | |
An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers. | ||||||||||
Grpc Gateway | 15,533 | 4,659 | 3 days ago | 385 | August 06, 2022 | 114 | bsd-3-clause | Go | ||
gRPC to JSON proxy generator following the gRPC HTTP spec | ||||||||||
Goproxy | 13,790 | a month ago | 17 | April 09, 2021 | 115 | gpl-3.0 | Go | |||
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。 | ||||||||||
Node Http Proxy | 13,363 | 398,065 | 2,932 | a day ago | 103 | May 17, 2020 | 579 | other | JavaScript | |
A full-featured http proxy for node.js | ||||||||||
Whistle | 12,515 | 11 | 17 | a day ago | 539 | September 13, 2022 | 33 | mit | JavaScript | |
HTTP, HTTP2, HTTPS, Websocket debugging proxy | ||||||||||
Http Proxy Middleware | 9,937 | 359,536 | 6,528 | 13 days ago | 78 | April 22, 2022 | 94 | mit | TypeScript | |
:zap: The one-liner node.js http-proxy middleware for connect, express, next.js and more | ||||||||||
Proxychains Ng | 8,751 | 16 days ago | 119 | gpl-2.0 | C | |||||
proxychains ng (new generation) - a preloader which hooks calls to sockets in dynamically linked programs and redirects it through one or more socks/http proxies. continuation of the unmaintained proxychains project. the sf.net page is currently not updated, use releases from github release page instead. | ||||||||||
Cow | 8,204 | 2 years ago | June 19, 2016 | 240 | bsd-2-clause | Go | ||||
HTTP proxy written in Go. COW can automatically identify blocked sites and use parent proxies to access. | ||||||||||
Anyproxy | 7,193 | 73 | 131 | 2 years ago | 176 | June 18, 2020 | 241 | apache-2.0 | JavaScript | |
A fully configurable http/https proxy in NodeJS |
COW 是一个简化穿墙的 HTTP 代理服务器。它能自动检测被墙网站,仅对这些网站使用二级代理。
当前版本:0.9.8 CHANGELOG
欢迎在 develop branch 进行开发并发送 pull request :)
COW 的设计目标是自动化,理想情况下用户无需关心哪些网站无法访问,可直连网站也不会因为使用二级代理而降低访问速度。
安装:
OS X, Linux (x86, ARM): 执行以下命令(也可用于更新)
curl -L git.io/cow | bash
COW_INSTALLDIR
可以指定安装的路径,若该环境变量不是目录则询问用户Windows: 从 release 页面下载
熟悉 Go 的用户可用 go get github.com/cyfdecyf/cow
从源码安装
编辑 ~/.cow/rc
(Linux) 或 rc.txt
(Windows),简单的配置例子如下:
#开头的行是注释,会被忽略
# 本地 HTTP 代理地址
# 配置 HTTP 和 HTTPS 代理时请填入该地址
# 若配置代理时有对所有协议使用该代理的选项,且你不清楚此选项的含义,请勾选
# 或者在自动代理配置中填入 http://127.0.0.1:7777/pac
listen = http://127.0.0.1:7777
# SOCKS5 二级代理
proxy = socks5://127.0.0.1:1080
# HTTP 二级代理
proxy = http://127.0.0.1:8080
proxy = http://user:[email protected]:8080
# shadowsocks 二级代理
proxy = ss://aes-128-cfb:[email protected]:8388
# cow 二级代理
proxy = cow://aes-128-cfb:[email protected]:8388
使用 cow 协议的二级代理需要在国外服务器上安装 COW,并使用如下配置:
listen = cow://aes-128-cfb:[email protected]:8388
完成配置后启动 COW 并配置好代理即可使用。
配置文件在 Unix 系统上为 ~/.cow/rc
,Windows 上为 COW 所在目录的 rc.txt
文件。 样例配置 包含了所有选项以及详细的说明,建议下载然后修改。
启动 COW:
cow &
(若 COW 不在 PATH
所在目录,请执行 ./cow &
)
cow-taskbar.exe
,隐藏到托盘执行cow-hide.exe
,隐藏为后台程序执行cow.exe
PAC url 为 http://<listen address>/pac
,也可将浏览器的 HTTP/HTTPS 代理设置为 listen address
使所有网站都通过 COW 访问。
使用 PAC 可获得更好的性能,但若 PAC 中某网站从直连变成被封,浏览器会依然尝试直连。遇到这种情况可以暂时不使用 PAC 而总是走 HTTP 代理,让 COW 学习到新的被封网站。
命令行选项可以覆盖部分配置文件中的选项、打开 debug/request/reply 日志,执行 cow -h
来获取更多信息。
一般情况下无需手工指定被墙和直连网站,该功能只是是为了处理特殊情况和性能优化。
配置文件所在目录下的 blocked
和 direct
可指定被墙和直连网站(direct
中的 host 会添加到 PAC)。
Windows 下文件名为 blocked.txt
和 direct.txt
。
google.com
相当于 *.google.com
com.hk
, edu.cn
等二级域名下的三级域名,作为二级域名处理。如 google.com.hk
相当于 *.google.com.hk
plus.google.com
COW 在配置文件所在目录下的 stat
json 文件中记录经常访问网站被墙和直连访问的次数。
stat
文件无限增长)COW 将以下错误认为是墙在作怪:
无论是普通的 HTTP GET 等请求还是 CONNECT 请求,失败后 COW 都会自动重试请求。(如果已经有内容发送回 client 则不会重试而是直接断开连接。)
用连接被重置来判断被墙通常来说比较可靠,超时则不可靠。COW 每隔半分钟会尝试估算合适的超时间隔,避免在网络连接差的情况下把直连网站由于超时也当成被墙。 COW 默认配置下检测到被墙后,过两分钟再次尝试直连也是为了避免误判。
如果超时自动重试给你造成了问题,请参考样例配置高级选项中的 readTimeout
, dialTimeout
选项。
贡献代码:
Bug reporter:
@glacjay 对 0.3 版本的 COW 提出了让它更加自动化的建议,使我重新考虑 COW 的设计目标并且改进成 0.5 版本之后的工作方式。