Skip to content

Latest commit

ย 

History

History
158 lines (134 loc) ยท 5.96 KB

File metadata and controls

158 lines (134 loc) ยท 5.96 KB

TinyProxy.NET AGENTS

้กน็›ฎๆฆ‚่ฟฐ

TinyProxy.NET ๆ˜ฏๅฏน tinyproxy ็š„ .NET 10 ้‡ๅ†™ๅฎž็Žฐ๏ผŒ็›ฎๆ ‡ๆ˜ฏไธŽ C ็‰ˆๆœฌๅŠŸ่ƒฝๅฏน้ฝ๏ผŒๅนถไฟๆŒ้ซ˜ๆ€ง่ƒฝใ€ไฝŽๅ†…ๅญ˜ๅ ็”จไธŽๅฏ็ปดๆŠคๆ€งใ€‚

tinyproxy C ๆบ็ ไฝ็ฝฎ๏ผˆๅทฒไฟฎๆญฃ๏ผ‰: ~/Repos/tinyproxy-org/tinyproxy/src


ๆœ€ๆ–ฐ็Šถๆ€๏ผˆ2026-02-28๏ผ‰

  • ่ฟ่กŒๆ—ถ: 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 ๆจกๅ—ๆ˜ ๅฐ„๏ผˆๆŒ‰ๅฝ“ๅ‰ไปฃ็ ๅฏน้ฝ๏ผ‰

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 โœ…

ๅŠŸ่ƒฝ็Šถๆ€ๆธ…ๅ•

1. ไปฃ็†ๅ่ฎฎ

  • HTTP/1.0 / HTTP/1.1 ่ฝฌๅ‘
  • HTTPS CONNECT ้šง้“
  • ้€ๆ˜Žไปฃ็†
  • ๅๅ‘ไปฃ็†
  • HTTP ไธŠๆธธไปฃ็†
  • SOCKS4/SOCKS5 ไธŠๆธธไปฃ็†

2. ่ฎฟ้—ฎๆŽงๅˆถไธŽ่ฟ‡ๆปค

  • IP Allow/Deny๏ผˆๅซ CIDR / ้€š้…๏ผ‰
  • URL ่ฟ‡ๆปค๏ผˆregex / glob๏ผ‰
  • CONNECT ็ซฏๅฃ้™ๅˆถ
  • Via / X-Tinyproxy ๅคดๆŽงๅˆถ
  • ๅŒฟๅๆจกๅผๅคด็™ฝๅๅ•
  • Basic Auth๏ผˆๅ•็”จๆˆท + ๅคš็”จๆˆท๏ผ‰

3. ้…็ฝฎไธŽ่ฟ่กŒๆ—ถ

  • tinyproxy.conf ้ฃŽๆ ผ่งฃๆž
  • -c ้…็ฝฎ่ทฏๅพ„ๅ‚ๆ•ฐ
  • ้…็ฝฎ็ƒญ้‡่ฝฝ๏ผˆๆ–‡ไปถ็›‘ๆŽง๏ผ‰
  • PID ๆ–‡ไปถ
  • ไผ˜้›…ๅœๆญข๏ผˆCtrl+C / ่ฟ›็จ‹้€€ๅ‡บ๏ผ‰

4. ่ง‚ๆต‹่ƒฝๅŠ›

  • 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

ๅผ€ๅ‘ไธŽ้ชŒ่ฏ็บฆๅฎš

  1. ๅ‚่€ƒ C ๅฎž็Žฐๆ—ถ๏ผŒ็ปŸไธ€ไฝฟ็”จ่ทฏๅพ„: ~/Repos/tinyproxy-org/tinyproxy/src
  2. ไปปไฝ•ๅŠŸ่ƒฝๅ˜ๆ›ด่‡ณๅฐ‘ๆ‰ง่กŒ:
    • dotnet build src/TinyProxy/TinyProxy.csproj
    • dotnet test tests/TinyProxy.Tests/TinyProxy.Tests.csproj
  3. ๆ€ง่ƒฝ็›ธๅ…ณๆ”นๅŠจ้ขๅค–ๆ‰ง่กŒ:
    • dotnet run -c Release --project benchmarks/TinyProxy.Benchmarks/TinyProxy.Benchmarks.csproj

ๅ‚่€ƒ่ต„ๆบ