{"id":22951544,"url":"https://github.com/lifailon/froxy","last_synced_at":"2025-08-13T00:32:46.190Z","repository":{"id":225665645,"uuid":"766330695","full_name":"Lifailon/froxy","owner":"Lifailon","description":"Cross-platform cli tool and Docker container for implementing SOCKS, HTTP, and reverse proxy server based on .NET","archived":false,"fork":false,"pushed_at":"2024-10-28T13:57:19.000Z","size":7023,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-30T05:12:01.773Z","etag":null,"topics":["authentication-backend","console","console-tool","csharp","docker","dotnet","forward-proxy","microsoft","network-tools","proxy","proxy-server","reverse-proxy","socket","socks","socks5","ssh-tunnel","tcp","tcp-proxy","web-proxy","windows"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/lifailon/froxy","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lifailon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-03T00:39:28.000Z","updated_at":"2024-11-27T11:54:02.000Z","dependencies_parsed_at":"2024-06-29T19:24:31.739Z","dependency_job_id":"e88efa48-44e6-4027-b512-ae5330dd4f41","html_url":"https://github.com/Lifailon/froxy","commit_stats":null,"previous_names":["lifailon/reverseproxynet","lifailon/froxy","lifailon/rpnet"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2Ffroxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2Ffroxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2Ffroxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2Ffroxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lifailon","download_url":"https://codeload.github.com/Lifailon/froxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229717731,"owners_count":18113400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication-backend","console","console-tool","csharp","docker","dotnet","forward-proxy","microsoft","network-tools","proxy","proxy-server","reverse-proxy","socket","socks","socks5","ssh-tunnel","tcp","tcp-proxy","web-proxy","windows"],"created_at":"2024-12-14T15:16:37.444Z","updated_at":"2024-12-14T15:16:37.895Z","avatar_url":"https://github.com/Lifailon.png","language":"C#","readme":"\u003ch1 align=\"center\"\u003e\n    Froxy\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://hub.docker.com/r/lifailon/froxy\"\u003e\u003cimg title=\"Docker\"src=\"https://img.shields.io/docker/image-size/lifailon/froxy?\u0026color=blue\u0026logo=Docker\u0026label=Docker+Image\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.nuget.org/packages/froxy\"\u003e\u003cimg title=\"Docker\"src=\"https://img.shields.io/nuget/vpre/froxy?logo=dotnet\u0026label=NuGet\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003e\n    \u003cstrong\u003eEnglish\u003c/strong\u003e | \u003ca href=\"README_RU.md\"\u003eРусский\u003c/a\u003e\n\u003c/h4\u003e\n\nA cross-platform command line utility for implementing a SOCKS, HTTP and reverse proxy server based on **.NET**. It supports **SOCKS5** protocol for tunneling TCP traffic and **HTTP** protocol for direct (classical) proxying of any **HTTPS** traffic (`CONNECT` requests), as well as **TCP**, **UDP** and **HTTP/HTTPS** protocols for reverse proxying. For web traffic forwarding via reverse proxy, `GET` and `POST` requests are supported, with headers and body of the request passed from the client, which allows to use `API` requests and pass authorization on sites (cookie passing).\n\n- [Installation](#-installation)\n- [NuGet](#-nuget)\n- [Build](#-build)\n- [Docker](#-docker)\n- [Usage examples](#-usage)\n- - [Forward Proxy](#-forward-proxy)\n- - - [SOCKS](#socks)\n- - - [HTTP](#http)\n- - [Reverse Proxy](#-reverse-proxy)\n- - - [TCP](#-tcp)\n- - - [SSH Tunneling](#-ssh-tunneling-over-tcp)\n- - - [UDP](#-udp)\n- - - [HTTP and HTTPS](#-http-and-https)\n- - - [Authorization](#-authorization)\n\n## 💁 For what?\n\nWhat tasks does a reverse proxy server solve:\n\n- **Security**, since the client does not have direct access to the target machine where the application is running, for example, a web server.\n\n- If your Web application or `API` server does not support **authorization**, then you can use [Base64](https://en.wikipedia.org/wiki/Base64) encryption, which requires transmitting authorization data in the request header for all clients that will connect via Proxy. If you use a browser, then a corresponding form for passing basic authorization will be provided.\n\n- Unlike the classic Proxy, you do not need to specify the proxy server address on the client side in the application settings or change the code and use external modules (for example, [proxy-agents](https://github.com/TooTallNate/proxy-agents)) for each request via the API client, but only change the url to the proxy server address.\n\n- If you use a **VPN** service to access a specific URL on the Internet via the `HTTP` or `HTTPS` protocols on your machine, you can provide access to it to other machines on the network, without having to install and use VPN on other clients (for example, on mobile devices the Proxy server address can be specified in the Wi-Fi connection configuration).\n\n- Provide direct access to other hosts in the second subnet, if you use a **VPN** server in point-to-point mode (for example, [Radmin](https://www.radmin-vpn.com)).\n\n- The ability to provide access to an external client in the **DMZ** (Demilitarized Zone) to applications that are located on the internal network, for example, for the `RTSP`, `SSH`, `RDP`, `Syslog` protocols, etc., it is enough to install a proxy with network access to both subnets and provide access through it only to selected applications on different hosts.\n\n- Can act as an alternative to setting up classic **ssh tunneling**, like in `OpenSSH`, `Putty` and others.\n\nThere are many alternatives that provide similar functionality separately. For example, **ncat** on Windows (from [nmap](https://github.com/nmap/nmap)), **socat** on Linux for `TCP` or [ReverseProxy](https://github.com/ilanyu/ReverseProxy) on Golang for redirecting HTTP/HTTPS traffic. All of the above functionality is implemented in one utility.\n\n## 🚀 Installation\n\n### 💻 Windows\n\n- [Download and install](https://dotnet.microsoft.com/en-us/download/dotnet/8.0/runtime) .NET application runtime version 8.0.\n\n- [Download](https://github.com/Lifailon/froxy/releases/latest) portable version executable from GitHub repository.\n\n### 🐧 Linux\n\n- Install the .NET Application Runtime:\n\n```shell\nsudo apt-get install -y dotnet-runtime-8.0\n```\n\n- Download the `froxy` executable file to the `/usr/local/bin/` directory and grant execution permissions:\n\n```shell\narch=\"x64\" # or \"arm64\"\nsudo curl -s -L \"https://github.com/Lifailon/froxy/releases/download/0.4.0/froxy-0.4.0-linux-$arch\" -o /usr/local/bin/froxy\nsudo chmod +x /usr/local/bin/froxy\n```\n\n💡 Tested on Ubuntu system.\n\n### No dependency installation\n\nIf you don't want to install the `.NET` runtime, you can [download](https://github.com/Lifailon/froxy/releases/latest) a zip archive of the **self-contained** portable version, which already contains all the dependencies (available for both platforms).\n\n## 📦 NuGet\n\nYou can install the application from the package manager [NuGet](https://www.nuget.org/packages/froxy):\n\n```shell\ndotnet tool install --global froxy  \n```\n\nAfter installation, the application will be available as a `froxy` executable from any location on the system.\n\nPackage the application for publication on [NuGet](https://www.nuget.org):\n\n```shell\ndotnet pack\n```\n\n## 🔨 Build\n\n- Clone the repository:\n\n```shell\ngit clone https://github.com/Lifailon/froxy\ncd froxy/source\n```\n\n- Build and run the application:\n\n```shell\ndotnet build \u0026\u0026 dotnet run [parameters]\n```\n\n- Build the application into one executable file:\n\nWindows:\n\n```shell\ndotnet publish -r win-x64 -c Release /p:PublishSingleFile=true\n```\n\nLinux:\n\n```shell\ndotnet publish -r linux-x64 -c Release /p:PublishSingleFile=true\n```\n\n- Build a self-contained application (without the need to install .NET platform dependencies on the executable system):\n\nWindows:\n\n```shell\ndotnet publish -r win-x64 -c Release --self-contained true\n```\n\nLinux:\n\n```shell\ndotnet publish -r linux-x64 -c Release --self-contained true\n```\n\n## 🐳 Docker\n\nDownload the built image from [DockerHub](https://hub.docker.com/r/lifailon/froxy):\n\n```shell\ndocker pull lifailon/froxy:latest\n```\n\nTo build a container image from project source files, use [dockerfile](dockerfile):\n\n```shell\ndocker build -t lifailon/froxy .\n```\n\nTo pre-build the application (if this has not been done previously on the local system), use [dockerfile-pre-build](dockerfile-pre-build):\n\n```shell\ndocker build -t lifailon/froxy -f dockerfile-pre-build .\n```\n\nAn example of running a classic proxy server for **HTTP** protocol on port `8080` using authorization in the container:\n\n```shell\nport=8080\ndocker run -d \\\n    --name froxy \\\n    -e SOCKS=0 \\\n    -e FORWARD=$port \\\n    -e LOCAL=\"\" \\\n    -e REMOTE=\"\" \\\n    -e USER=\"admin\" \\\n    -e PASSWORD=\"admin\" \\\n    -p $port:$port \\\n    --restart=unless-stopped \\\n    lifailon/froxy\n```\n\nIf you plan to use a reverse proxy, set the value to `SOCKS=0` and `FORWARD=0`, passing the values to the `LOCAL` and `REMOTE` variables instead. If authorization is not required, then pass the value `false` to the `USER` and `PASSWORD` parameters.\n\nAn example of starting a reverse proxy server without authorization:\n\n```shell\nport=8443\ndocker run -d \\\n    --name froxy \\\n    -e SOCKS=0 \\\n    -e FORWARD=\"0\" \\\n    -e LOCAL=\"*:$port\" \\\n    -e REMOTE=\"https://kinozal.tv\" \\\n    -e USER=\"false\" \\\n    -e PASSWORD=\"false\" \\\n    -p $port:$port \\\n    --restart=unless-stopped \\\n    lifailon/froxy\n```\n\nYou can run multiple instances of an application at the same time, example [docker-compose](docker-compose.yml) for the [TMDB](https://www.themoviedb.org) web interface on port `8081` and **api** on port `8082` without authorization:\n\n```shell\ndocker-compose -f docker-compose.yml up -d\n```\n\nIn the example below, the machine does not have direct access to **api**, so the request is made through a proxy and a reverse proxy:\n\n![img](image/docker-proxy.jpg)\n\nTo stop all running services:\n\n```shell\ndocker-compose down\n```\n\n## 📑 Usage\n\nGet Help:\n\n```shell\nfroxy --help\n\nForward and reverse proxy server base on .NET.\n\nParameters:\n  -h, --help                       Get help.\n  -v, --version                    Get version.\n  -s, --socks \u003cport\u003e               Start SOCKS5 proxy server forwarding TCP and UDP traffic via port selected in the 1024-49151 range.\n  -f, --forward \u003cport\u003e             Start HTTP proxy server forwarding HTTPS traffic (CONNECT method) via port selected in the 1024-49151 range.\n  -l, --local \u003cport/address:port\u003e  The interface address and port for TCP or only the port for UDP, through which proxy requests will pass.\n  -r, --remote \u003caddress:port/url\u003e  TCP/UDP or HTTP/HTTPS (GET and POST methods) address of the remote resource to which requests will be proxy.\n  -u, --user \u003clogin\u003e               User name for authorization (supported for forward and reverse HTTP/HTTPS protocols only).\n  -p, --pass \u003cpassword\u003e            User password for authorization.\n\nExamples:\n  froxy --socks 1080\n  froxy --forward 8080\n  froxy --forward 8080 \u003e\u003e froxy.log \u0026\n  froxy --local 5514 --remote 192.168.3.100:514\n  froxy --local 127.0.0.1:8443 --remote 192.168.3.101:80\n  froxy --local 127.0.0.1:8443 --remote https://example.com\n  froxy --local *:8443 --remote https://example.com --user admin --pass admin\n```\n\n### 📭 Forward Proxy\n\n#### SOCKS\n\nRunning the proxy server using the **SOCKS5** protocol on port `7070`, and checking the connection on the Android device via client [Super Proxy](https://play.google.com/store/apps/details?id=com.scheler.superproxy):\n\n```shell\nfroxy --socks 7070 --user admin --pass admin\n\nSOCKS5 proxy server running on port 7070\n[16:10:55] Error authentication: 192.168.3.58:49962\nReceived username: admin, password: admin2\n[16:10:59] Request: 192.168.3.58:49984 =\u003e 8.8.8.4:853\n[16:11:06] Request: 192.168.3.58:50024 =\u003e kinozal.tv:443\n[16:11:06] Request: 192.168.3.58:50036 =\u003e optimizationguide-pa.googleapis.com:443\n[16:11:06] Request: 192.168.3.58:50040 =\u003e kinozal.tv:443\n[16:11:06] Request: 192.168.3.58:50050 =\u003e myroledance.com:443\n[16:11:06] Request: 192.168.3.58:57488 =\u003e tmfjas.com:443\n[16:11:06] Request: 192.168.3.58:57484 =\u003e clientservices.googleapis.com:443\n[16:11:06] Request: 192.168.3.58:57504 =\u003e i124.fastpic.org:443\n[16:11:07] Request: 192.168.3.58:57518 =\u003e counter.yadro.ru:443\n[16:11:07] Request: 192.168.3.58:57532 =\u003e klmainprost.com:443\n[16:11:08] Request: 192.168.3.58:57546 =\u003e tmfjas.com:443\n[16:11:09] Request: 192.168.3.58:57562 =\u003e fonts.gstatic.com:443\n[16:11:09] Request: 192.168.3.58:57564 =\u003e readaloud.googleapis.com:443\n[16:11:09] Request: 192.168.3.58:57572 =\u003e readaloud.googleapis.com:443\n[16:11:10] Disconnect: 192.168.3.58:57572\n[16:11:11] Disconnect: 192.168.3.58:49984\n[16:11:12] Request: 192.168.3.58:57586 =\u003e nearbydevices-pa.googleapis.com:443\n[16:11:25] Request: 192.168.3.58:46610 =\u003e clients4.google.com:443\n[16:11:26] Disconnect: 192.168.3.58:57518\n[16:11:36] Request: 192.168.3.58:43958 =\u003e userlocation.googleapis.com:443\n[16:11:37] Disconnect: 192.168.3.58:50024\n[16:11:37] Disconnect: 192.168.3.58:50040\n...\n```\n\n![android-client](image/android-client.jpg)\n\n#### HTTP\n\nRunning a forwarding proxy on the server for `HTTP` protocol:\n\n```shell\nfroxy --forward 8080 --user admin --pass admin\n\nForward proxy server running on port 8080\n[14:58:18] Error authentication: 192.168.3.101:47156\n[14:58:20] Connect: 192.168.3.101:47170 =\u003e kinozal.tv:443\n[14:58:20] Disconnect: 192.168.3.101:47170\n[14:58:35] Connect: 192.168.3.101:47522 =\u003e rutracker.org:443\n[14:58:36] Disconnect: 192.168.3.101:47522\n```\n\nSending requests on the client via proxy:\n\n```shell\ncurl -x http://192.168.3.100:8080 --proxy-user adm:adm https://kinozal.tv/browse.php?s=the+rookie\ncurl -x http://192.168.3.100:8080 --proxy-user admin:admin https://kinozal.tv/browse.php?s=the+rookie\ncurl -x http://192.168.3.100:8080 --proxy-user admin:admin https://rutracker.org/forum/index.php\n```\n\nYou can also run the proxy in daemon mode (background process) and pass the log output to a file:\n\n```shell\nfroxy --forward 8080 --user admin --pass admin \u003e\u003e froxy.log \u0026 \n```\n\nThe syntax is the same for both systems (Linux and Windows). It is possible to launch multiple instances to process different requests in reverse proxy mode.\n\nTo stop all background processes in Windows:\n\n```PowerShell\nGet-Process *froxy* | Stop-Process\n```\n\nLinux:\n\n```shell\npkill froxy\n```\n\n### ⚡ Reverse Proxy\n\n#### 🔌 TCP\n\nIn the example, accepts requests on the interface with IP address `192.168.3.100` and port `8443` to redirect to a remote host with IP address `192.168.3.101`, where the application is running on port `80`.\n\n```shell\nfroxy --local 192.168.3.100:8443 --remote 192.168.3.101:80\n\nTCP protocol is used\nListening on 192.168.3.100:8443 for forwarding to 192.168.3.101:80\n[15:52:01] 192.168.3.100:37865: [::ffff:192.168.3.101]:80\n[15:52:04] 192.168.3.100:37160: [::ffff:192.168.3.101]:80\n[15:52:21] 192.168.3.99:35036: [::ffff:192.168.3.101]:80\n[15:52:22] 192.168.3.99:35037: [::ffff:192.168.3.101]:80\n[15:52:25] 192.168.3.99:35035: [::ffff:192.168.3.101]:80\n[15:52:30] 192.168.3.100:37162: [::ffff:192.168.3.101]:80\n[15:52:34] 192.168.3.100:38970: [::ffff:192.168.3.101]:80\n[15:52:35] 192.168.3.100:37999: [::ffff:192.168.3.101]:80\n```\n\n💡 To listen to all network interfaces, use the `*` symbol instead of the local IP address (you need to run the console with administrator rights).\n\nThis method is suitable for processing most protocols that operate on the basis of TCP, including support for data transmission in the request body via HTTP.\n\nBut this method is not suitable for proxying requests to remote resources over the Internet.\n\n```PowerShell\n$(Test-NetConnection 172.67.189.243 -Port 443).TcpTestSucceeded\nTrue\n\nfroxy--local localhost:8443 --remote 172.67.189.243:443\n\nTCP protocol is used\nError: An invalid IP address was specified.\n```\n\nTo solve this problem, it is necessary to use proxying via the HTTP or HTTPS protocol.\n\n#### 🚧 SSH tunneling over TCP\n\nExample ssh connection via proxy server:\n\n```shell\nfroxy --local 192.168.3.100:3131 --remote 192.168.3.101:2121\n```\n\nOn the client side, we connect to host `192.168.3.101`, through a proxy with address `192.168.3.100`:\n\n```shell\nssh lifailon@192.168.3.100 -p 3131\n```\n\n![img](image/tcp-ssh-tunnel.jpg)\n\n#### 📡 UDP\n\nAn example of forwarding requests from a client (the `rsyslog` client configuration on the right) via UDP (one `@` character in the configuration) to the [Visual Syslog server](https://github.com/MaxBelkov/visualsyslog) listening to requests on port `514` through a proxy server that listens for requests on port `5514`.\n\n💡 When using the `UDP` protocol, the local address is not specified.\n\n```shell\nfroxy --local 5514 --remote 192.168.3.100:514\n```\n\n![img](image/udp-syslog-relay.jpg)\n\n#### 🌐 HTTP and HTTPS\n\nWhen using proxying using the **HTTP or HTTPS** protocols, you must pass a url address that begins with the name of the protocol `http://` or `https://`.\n\n💡 Data transfer via `GET` and `POST` requests is supported.\n\nIn the example, the proxy server accepts requests on the interface with the IP address `192.168.3.100` on port `8443` to redirect to the remote url resource [Kinozal](https://kinozal.tv). The connection is made from a client with the IP address `192.168.3.99` using the `GET` method. Lists all the endpoints that the client contacts to load the home page.\n\n```shell\nfroxy --local 192.168.3.100:8443 --remote https://kinozal.tv\n\nHTTP protocol is used\nListening on 192.168.3.100:8443 for forwarding to https://kinozal.tv\nNot authorization is used\n[16:03:43] 192.168.3.99 GET: /\n[16:03:43] 192.168.3.99 GET: /pic/0_kinozal.tv.css?v=3.4\n[16:03:43] 192.168.3.99 GET: /pic/jquery-3.6.3.min.js?v=1.1\n[16:03:43] 192.168.3.99 GET: /pic/use.js?v=3.7\n[16:03:43] 192.168.3.99 GET: /pic/logo3.gif\n[16:03:43] 192.168.3.99 GET: /pic/emty.gif\n[16:03:44] 192.168.3.99 GET: /pic/radio_ban.jpg\n[16:03:44] 192.168.3.99 GET: /pic/knz_love.gif\n[16:03:44] 192.168.3.99 GET: /i/poster/1/1/1718811.jpg\n[16:03:44] 192.168.3.99 GET: /pic/cat/45.gif\n[16:03:44] 192.168.3.99 GET: /pic/l_portiere.gif\n[16:03:44] 192.168.3.99 GET: /pic/sbg.gif\n[16:03:44] 192.168.3.99 GET: /pic/r_portiere.gif\n[16:03:44] 192.168.3.99 GET: /pic/cat/17.gif\n[16:03:44] 192.168.3.99 GET: /pic/dw2.png\n[16:03:44] 192.168.3.99 GET: /pic/status_icons.png\n[16:03:44] 192.168.3.99 GET: /pic/srch_l.png\n[16:03:44] 192.168.3.99 GET: /pic/srch_r2.png\n[16:03:44] 192.168.3.99 GET: /pic/flags_all.png?v=1\n[16:03:44] 192.168.3.99 GET: /i/poster/4/1/1772641.jpg\n[16:03:44] 192.168.3.99 GET: /i/poster/3/7/541437.jpg\n[16:03:44] 192.168.3.99 GET: /pic/cat/11.gif\n[16:03:44] 192.168.3.99 GET: /pic/cat/20.gif\n[16:03:45] 192.168.3.99 GET: /i/poster/8/0/467680.jpg\n[16:03:45] 192.168.3.99 GET: /i/poster/2/1/2040221.jpg\n[16:03:45] 192.168.3.99 GET: /pic/cat/8.gif\n[16:03:45] 192.168.3.99 GET: /pic/favicon.ico\n```\n\nAuthorization on the site via `POST` request:\n\n```shell\n[16:05:19] 192.168.3.99 POST: /takelogin.php\n[16:05:20] 192.168.3.99 GET: /pic/0_kinozal.tv.css?v=3.4\n[16:05:20] 192.168.3.99 GET: /pic/ava_m.jpg\n[16:05:20] 192.168.3.99 GET: /pic/logo3.gif\n[16:05:20] 192.168.3.99 GET: /pic/use.js?v=3.7\n[16:05:20] 192.168.3.99 GET: /pic/jquery-3.6.3.min.js?v=1.1\n[16:05:21] 192.168.3.99 GET: /pic/minus.gif\n[16:05:21] 192.168.3.99 GET: /pic/plus.gif\n[16:05:21] 192.168.3.99 GET: /pic/r5.gif\n[16:05:21] 192.168.3.99 GET: /pic/bnr_pay_sm.jpg\n[16:05:21] 192.168.3.99 GET: /pic/emty.gif\n[16:05:21] 192.168.3.99 GET: /pic/srch_l.png\n[16:05:21] 192.168.3.99 GET: /pic/r_portiere.gif\n[16:05:21] 192.168.3.99 GET: /pic/sbg.gif\n[16:05:21] 192.168.3.99 GET: /pic/bgmn.gif\n[16:05:21] 192.168.3.99 GET: /pic/srch_r2.png\n[16:05:21] 192.168.3.99 GET: /pic/l_portiere.gif\n[16:05:21] 192.168.3.99 GET: /pic/flags_all.png?v=1\n```\n\n#### 🔓 Authorization\n\nTo use authorization on the proxy server side, you must fill in the appropriate parameters at startup. If the client transmits incorrect authorization data, this will be displayed in the log.\n\n```shell\nfroxy --local 192.168.3.100:8443 --remote https://kinozal.tv --user proxy --pass admin\n\nHTTP protocol is used\nListening on 192.168.3.100:8443 for forwarding to https://kinozal.tv\nAuthorization is used\n[16:07:44] 192.168.3.100 GET: /\n[16:07:44] 192.168.3.100 GET: Authorization form sent\n[16:07:48] 192.168.3.100 GET: /\n[16:07:48] 192.168.3.100 GET: Authorization error\n[16:07:49] 192.168.3.100 GET: /\n[16:07:49] 192.168.3.100 GET: Authorization form sent\n[16:07:53] 192.168.3.100 GET: /\n[16:07:54] 192.168.3.100 GET: /pic/0_kinozal.tv.css?v=3.4\n[16:07:54] 192.168.3.100 GET: /pic/jquery-3.6.3.min.js?v=1.1\n[16:07:54] 192.168.3.100 GET: /pic/use.js?v=3.7\n[16:07:54] 192.168.3.100 GET: /pic/logo3.gif\n[16:07:54] 192.168.3.100 GET: /pic/emty.gif\n[16:07:55] 192.168.3.100 GET: /pic/radio_ban.jpg\n[16:07:55] 192.168.3.100 GET: /pic/knz_love.gif\n[16:07:55] 192.168.3.100 GET: /i/poster/1/1/1718811.jpg\n[16:07:55] 192.168.3.100 GET: /pic/cat/45.gif\n[16:07:55] 192.168.3.100 GET: /pic/dw2.png\n[16:07:55] 192.168.3.100 GET: /pic/cat/17.gif\n[16:07:55] 192.168.3.100 GET: /i/poster/4/1/1772641.jpg\n[16:07:55] 192.168.3.100 GET: /i/poster/3/7/541437.jpg\n[16:07:55] 192.168.3.100 GET: /pic/cat/11.gif\n[16:07:55] 192.168.3.100 GET: /pic/cat/20.gif\n[16:07:55] 192.168.3.100 GET: /i/poster/8/0/467680.jpg\n[16:07:55] 192.168.3.100 GET: /i/poster/2/1/2040221.jpg\n[16:07:55] 192.168.3.100 GET: /pic/cat/8.gif\n[16:07:56] 192.168.3.100 GET: /pic/srch_l.png\n[16:07:56] 192.168.3.100 GET: /pic/srch_r2.png\n[16:07:56] 192.168.3.100 GET: /pic/l_portiere.gif\n[16:07:56] 192.168.3.100 GET: /pic/r_portiere.gif\n[16:07:56] 192.168.3.100 GET: /pic/sbg.gif\n[16:07:56] 192.168.3.100 GET: /pic/status_icons.png\n[16:07:56] 192.168.3.100 GET: /pic/flags_all.png?v=1\n[16:07:57] 192.168.3.100 GET: /pic/favicon.ico\n```\n\n---\n\n## Other projects:\n\n- 🧲 [Kinozal bot](https://github.com/Lifailon/Kinozal-Bot) - Telegram bot that allows you to automate the process of delivering content to your TV using only your phone. Provides a convenient interface for interacting with the torrent tracker [Kinozal](https://kinozal.tv) and the database [TMDB](https://www.themoviedb.org) to track the release date of episodes, seasons and search for actors for each episode , as well as the ability to manage the torrent client [qBittorrent](https://github.com/qbittorrent/qBittorrent) or [Transmission](https://github.com/transmission/transmission) on your computer, being remote from home and from single interface.\n\n- ✨ [TorAPI](https://github.com/Lifailon/TorAPI/blob/main/README_RU.md) - unofficial API (backend) for torrent trackers RuTracker, Kinozal, RuTor and NoNameClub. Used for quick search of distributions, as well as obtaining torrent files, magnet links and detailed information about distribution by movie title, TV series or distribution ID, and also provides RSS news feed for all providers.\n\n- 🔎 [LibreKinopoisk](https://github.com/Lifailon/LibreKinopoisk) - Google Chrome extension that adds buttons to the Kinopoisk website and provides a **TorAPI** interface in the [Jackett](https://github.com/Jackett/Jackett) style (without the need to install a server part and use a VPN) for quickly searching for movies and series in open sources.\n\n- ❤️ [WebTorrent Desktop api](https://github.com/Lifailon/webtorrent-desktop-api) - fork of the [WebTorrent Desktop](https://github.com/webtorrent/webtorrent-desktop) client, which added a remote control mechanism via the `REST API` based on [Express Framework](https://github.com/expressjs/express).","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifailon%2Ffroxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flifailon%2Ffroxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifailon%2Ffroxy/lists"}