arloor / Httpproxy
Licence: mit
http代理,支持CONNECT和普通GET/POST,支持http2;可防止主动嗅探;可作为小火箭、圈、surge等软件和SwitchyOmega(chrome插件)所说的https代理
Stars: ✭ 104
Programming Languages
java
68154 projects - #9 most used programming language
Labels
Projects that are alternatives of or similar to Httpproxy
Mobileimsdk
一个原创移动端IM通信层框架,轻量级、高度提炼,历经8年、久经考验。可能是市面上唯一同时支持UDP+TCP+WebSocket三种协议的同类开源框架,支持iOS、Android、Java、H5,服务端基于Netty。
Stars: ✭ 3,864 (+3615.38%)
Mutual labels: nio, netty
Simviso Source Code Interpretation Sharing
simviso 的一系列源码解读分享视频,涉及国外顶级学府课程翻译、国外顶级开发者视频翻译,JDK, Rxjava,Spring Reactor, Netty ,Reactor-Netty ,Spring Webflux 我的目标是将Java的响应式建立起一套学习体系,假如你想深入,可以参考我的视频和后续出版的书籍,同时展现一些我的编程经验,做一个铺路人
Stars: ✭ 412 (+296.15%)
Mutual labels: nio, netty
netty-learning
bio, nio到 netty各种使用案例, 包含基础使用案例,各api使用方法,零拷贝,websocket,群聊,私聊,编码,解码,自定义协议,protobuf等使用案例,rpc服务器,客户端等等学习
Stars: ✭ 49 (-52.88%)
Mutual labels: netty, nio
Nettygateway
NettyGateway is a HTTP proxy server with flexible routing rules.
Stars: ✭ 73 (-29.81%)
Mutual labels: http-proxy, netty
cheshuo
🎃A lightweight game server framework. Based on Springboot and Netty. Using ProtoBuf as communication between client and server.
Stars: ✭ 23 (-77.88%)
Mutual labels: netty, nio
Wheel
关于net nio os cache db rpc json web http udp tcp mq 等多个小工具的自定义实现
Stars: ✭ 45 (-56.73%)
Mutual labels: nio, netty
Getty
一个完全基于java的,类似netty的高性能网络框架A fully Java-based, netty - like high-performance networking framework
Stars: ✭ 45 (-56.73%)
Mutual labels: nio, netty
Mirror
Deploy Google and Wikipedia mirror with one command using now.sh.
Stars: ✭ 93 (-10.58%)
Mutual labels: http-proxy, gfw
ToughProxy
ToughProxy 是一个代理服务器, 目标是提供一个综合性的代理服务软件,支持 socks5,socks4, http, https代理协议, 针对 Socks5 提供完善的认证机制,以及提供流量控制策略,访问控制策略。
Stars: ✭ 44 (-57.69%)
Mutual labels: netty, http-proxy
php-proxy
php proxy based on GoAgent protocal,Implemented by golang
Stars: ✭ 85 (-18.27%)
Mutual labels: http-proxy, gfw
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (+311.54%)
Mutual labels: nio, netty
Styx
Programmable, asynchronous, event-based reverse proxy for JVM.
Stars: ✭ 218 (+109.62%)
Mutual labels: nio, netty
styx
Programmable, asynchronous, event-based reverse proxy for JVM.
Stars: ✭ 250 (+140.38%)
Mutual labels: netty, nio
Nioimapclient
High performance, async IMAP client implementation
Stars: ✭ 28 (-73.08%)
Mutual labels: nio, netty
声明:本项目仅以学习为目的,请在当地法律允许的范围内使用本程序。任何因错误用途导致的法律责任,与本项目无关!
基于netty的http代理
- 支持普通GET/POST和CONNECT隧道代理
- 代理支持over TLS(也就是surge、小火箭等软件说的https proxy)
- 防止主动嗅探是否为http代理
- 使用openssl、epoll等技术,支持TLS v1.3。
配置解析
ask4Authcate=true
这是防止主动嗅探的开关,true则会主动要求客户端发送用户密码,会存在被主动嗅探的风险。所以建议设置为false,除非是直接通过SwitchyOmega(chrome插件)使用
# http代理配置
http.enable=true
http.port=80
http.auth=arloor:httpforarloor
http代理部分的配置,没啥好说的
# over Tls配置
https.enable=true
https.port=443
https.auth=arloor:httpforarloor
https.fullchain.pem=fullchain.pem
https.privkey.pem=privkey.pem
https代理部分的配置,主要就是证书相关的几个配置需要说明
https.fullchain.pem 是域名证书+根证书的简单拼接(fullchain是指完整的证书寻找路径,域名证书是用根证书签发的,而签发根证书的证书系统中已自带,由这个完整路径,浏览器才能判断该证书是否有效)
https.privkey.pem 是私钥
以腾讯云上的免费ssl证书为例,nginx文件夹中的1_xxx.com_bundle.crt
是fullchain,2_xxx.com.key
是privkey,相信代码从业者能够从这里举一反三,从而知道从其他途径签发的证书应该如何配置。
客户端说明
- 可以使用支持https的软件,例如:surge、shadowrocket、clash
- chrome浏览器可以通过SwitchyOmega插件使用本代理(不推荐,会存在被嗅探的风险)
- Java开发人员可以使用connect项目
网速监控
-
http(s)://host:port/net
提供了基于echarts.js的网速监控,展示最近500秒的网速 -
http(s)://host:port/metrics
提供了prometheus的exporter,可以方便地接入prometheus监控
如下:
# HELP proxy_out 上行流量
# TYPE proxy_out counter
proxy_out{host="localhost",} 65205
# HELP proxy_in 下行流量
# TYPE proxy_in counter
proxy_in{host="localhost",} 21205
# HELP proxy_out_rate 上行网速
# TYPE proxy_out_rate gauge
proxy_out_rate{host="localhost",} 23967
# HELP proxy_in_rate 下行网速
# TYPE proxy_in_rate gauge
proxy_in_rate{host="localhost",} 5758
# HELP direct_memory_total 直接内存使用量 对于jdk9+,请增加-Dio.netty.tryReflectionSetAccessible=true
# TYPE direct_memory_total gauge
direct_memory_total{host="localhost",} 33554439
jdk9以上设置-Dio.netty.tryReflectionSetAccessible=true的说明
性能测试
电报讨论组
电报讨论组 https://t.me/popstary
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].