TinyProxy.NET ๆฏๅฏน tinyproxy ็ .NET 10 ้ๅๅฎ็ฐ๏ผ็ฎๆ ๆฏไธ C ็ๆฌๅ่ฝๅฏน้ฝ๏ผๅนถไฟๆ้ซๆง่ฝใไฝๅ ๅญๅ ็จไธๅฏ็ปดๆคๆงใ
tinyproxy C ๆบ็ ไฝ็ฝฎ๏ผๅทฒไฟฎๆญฃ๏ผ: ~/Repos/tinyproxy-org/tinyproxy/src
- ่ฟ่กๆถ:
net10.0 - ๅฝๅๅๆฏ:
main - ไปฃ็ ๅฝขๆ: ๆ ธๅฟไปฃ็้พ่ทฏๅทฒ่ฝๅฐ๏ผHTTP/HTTPS CONNECTใACLใ่ฟๆปคใ่ฎค่ฏใๅๅ/้ๆไปฃ็ใไธๆธธไปฃ็ใ็ป่ฎก้กตใ็ญ้่ฝฝ๏ผ
- ๆต่ฏ็ถๆ:
dotnet test tests/TinyProxy.Tests/TinyProxy.Tests.csproj -v minimal้่ฟ๏ผPassed: 160, Failed: 0 - ๅทฅ็จ็ปๆ:
tinyproxy.slnๅฝๅไป ๅ ๅซsrc/TinyProxy/TinyProxy.csproj๏ผๆต่ฏๅๅบๅ้กน็ฎ็ฌ็ซ็ปดๆค
| C ๆไปถ | ๅ่ฝ | .NET ๆ ๅฐ๏ผๅฝๅ๏ผ | ็ถๆ |
|---|---|---|---|
main.c |
ๅ ฅๅฃใๅฏๅจไธ้ๅบ | Program.cs |
โ |
child.c |
ๅนถๅ่ฟๆฅ็ฎก็ | Core/ConnectionManager.cs |
โ |
reqs.c |
่ฏทๆฑไธปๆต็จไธ่ฝฌๅ | Core/Connection.cs, Protocol/Http/HttpForwarder.cs, Protocol/ConnectHandler.cs |
โ |
conf.c |
้ ็ฝฎ่งฃๆ | Config/ConfigParser.cs, Config/Configuration.cs |
โ |
buffer.c |
็ผๅฒ็ญ็ฅ | ArrayPool<byte> ๅจ Connection/HttpForwarder๏ผCore/StringBuilderCache.cs |
โ |
sock.c |
Socket ๆฉๅฑๆไฝ | Core/SocketExtensions.cs |
โ |
http-message.c |
HTTP ๆฅๆ่งฃๆ | Protocol/Http/HttpRequestParser.cs, Protocol/Http/HttpRequest.cs |
โ |
acl.c |
่ฎฟ้ฎๆงๅถ | Filter/AccessControl.cs |
โ |
upstream.c |
ไธๆธธไปฃ็ | Protocol/Http/HttpForwarder.cs, Protocol/ConnectHandler.cs, Protocol/SocksUpstreamProxy.cs |
โ |
log.c |
ๆฅๅฟ็ณป็ป | Core/ConsoleLogger.cs, Logging/AccessLogger.cs, Logging/SyslogLogger.cs |
โ |
transparent-proxy.c |
้ๆไปฃ็ | Protocol/TransparentProxy.cs |
โ |
reverse-proxy.c |
ๅๅไปฃ็ | Protocol/ReverseProxy.cs |
โ |
connect-ports.c |
CONNECT ็ซฏๅฃ้ๅถ | Filter/ConnectFilter.cs |
โ |
filter.c |
URL ่ฟๆปค | Filter/UrlFilter.cs |
โ |
basicauth.c |
ๅบๆฌ่ฎค่ฏ | Security/BasicAuth.cs |
โ |
html-error.c |
HTML ้่ฏฏ้กต | Protocol/HtmlErrorPages.cs |
โ |
loop.c |
ไบไปถๅพช็ฏไธ็ฏ่ทฏๆฃๆต | Core/EventLoop.cs, Core/LoopDetector.cs |
โ |
conns.c |
ๅ่ฟๆฅ็ๅฝๅจๆ | Core/Connection.cs |
โ |
stats.c |
็ป่ฎก่ฎกๆฐไธๅฑ็คบ | Metrics/Stats.cs, Protocol/StatsHandler.cs |
โ |
anonymous.c |
ๅฟๅๆจกๅผๅคด่ฟๆปค | Filter/AnonymousFilter.cs |
โ |
socks.c |
SOCKS ไธๆธธ | Protocol/SocksUpstreamProxy.cs |
โ |
- HTTP/1.0 / HTTP/1.1 ่ฝฌๅ
- HTTPS CONNECT ้ง้
- ้ๆไปฃ็
- ๅๅไปฃ็
- HTTP ไธๆธธไปฃ็
- SOCKS4/SOCKS5 ไธๆธธไปฃ็
- IP Allow/Deny๏ผๅซ CIDR / ้้ ๏ผ
- URL ่ฟๆปค๏ผregex / glob๏ผ
- CONNECT ็ซฏๅฃ้ๅถ
- Via / X-Tinyproxy ๅคดๆงๅถ
- ๅฟๅๆจกๅผๅคด็ฝๅๅ
- Basic Auth๏ผๅ็จๆท + ๅค็จๆท๏ผ
- tinyproxy.conf ้ฃๆ ผ่งฃๆ
-
-c้ ็ฝฎ่ทฏๅพๅๆฐ - ้ ็ฝฎ็ญ้่ฝฝ๏ผๆไปถ็ๆง๏ผ
- PID ๆไปถ
- ไผ้ ๅๆญข๏ผCtrl+C / ่ฟ็จ้ๅบ๏ผ
- Access Log
- ๆงๅถๅฐๆฅๅฟ
- Syslog๏ผRFC 5424 over UDP๏ผ
-
StatHost็ป่ฎก้กต้ข - ็ป่ฎก่ฎกๆฐๅจ๏ผ่ฟๆฅใ่ฏทๆฑใๆต้ใๆ็ปใๅคฑ่ดฅ๏ผ
- [~]
Metrics/PrometheusMetrics.csไธMetrics/HealthCheck.csๅทฒๅฎ็ฐ็ฑป๏ผ้ป่ฎคๅฏๅจๆต็จๅฐๆชๆฅ็บฟ
src/TinyProxy/
โโโ Core/
โ โโโ ConfigReloader.cs
โ โโโ Connection.cs
โ โโโ ConnectionManager.cs
โ โโโ ConsoleLogger.cs
โ โโโ Daemon.cs
โ โโโ EventLoop.cs
โ โโโ ILogger.cs
โ โโโ LoopDetector.cs
โ โโโ PidFileManager.cs
โ โโโ ProxyConstants.cs
โ โโโ SocketExtensions.cs
โ โโโ StringBuilderCache.cs
โ โโโ TextUtils.cs
โโโ Config/
โ โโโ ConfigParser.cs
โ โโโ Configuration.cs
โโโ Filter/
โ โโโ AccessControl.cs
โ โโโ AnonymousFilter.cs
โ โโโ ConnectFilter.cs
โ โโโ UrlFilter.cs
โโโ Logging/
โ โโโ AccessLogger.cs
โ โโโ ConsoleStructuredLogger.cs
โ โโโ StructuredLogger.cs
โ โโโ SyslogLogger.cs
โโโ Metrics/
โ โโโ HealthCheck.cs
โ โโโ PrometheusMetrics.cs
โ โโโ Stats.cs
โโโ Protocol/
โ โโโ Http/
โ โ โโโ ChunkedTransferHandler.cs
โ โ โโโ HttpForwarder.cs
โ โ โโโ HttpMethod.cs
โ โ โโโ HttpProtocolHandler.cs
โ โ โโโ HttpRequest.cs
โ โ โโโ HttpRequestParser.cs
โ โ โโโ HttpResponseProcessor.cs
โ โโโ Https/HttpsProtocolHandler.cs
โ โโโ ConnectHandler.cs
โ โโโ HtmlErrorPages.cs
โ โโโ IProtocolHandler.cs
โ โโโ ReverseProxy.cs
โ โโโ SocksUpstreamProxy.cs
โ โโโ StatsHandler.cs
โ โโโ TransparentProxy.cs
โโโ Security/BasicAuth.cs
โโโ Program.cs
- ๅ่ C ๅฎ็ฐๆถ๏ผ็ปไธไฝฟ็จ่ทฏๅพ:
~/Repos/tinyproxy-org/tinyproxy/src - ไปปไฝๅ่ฝๅๆด่ณๅฐๆง่ก:
dotnet build src/TinyProxy/TinyProxy.csprojdotnet test tests/TinyProxy.Tests/TinyProxy.Tests.csproj
- ๆง่ฝ็ธๅ
ณๆนๅจ้ขๅคๆง่ก:
dotnet run -c Release --project benchmarks/TinyProxy.Benchmarks/TinyProxy.Benchmarks.csproj