| CARVIEW |
hprox: a lightweight HTTP proxy server, and more
Flags
Manual Flags
| Name | Description | Default |
|---|---|---|
| quic | Enable QUIC (HTTP/3) support | Disabled |
| static | Enable static build | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- hprox-0.6.4.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0, 0.1.0.1, 0.1.0.2, 0.1.1, 0.1.2, 0.2.0, 0.2.1, 0.3.0, 0.4.0, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4 |
|---|---|
| Change log | Changelog.md |
| Dependencies | async (>=2.2), base (>=4.12 && <5), base64-bytestring (>=1.1), binary (>=0.8), bytestring (>=0.10), case-insensitive (>=1.2), conduit (>=1.3), conduit-extra (>=1.3), crypton, data-default-class, dns (>=4.0), fast-logger (>=3.0), hprox, http-client (>=0.5), http-client-tls (>=0.3.4), http-reverse-proxy (>=0.6.0.3), http-types (>=0.12), http2 (>=4.0), optparse-applicative (>=0.14), random (>=1.2.1), text, tls (>=1.5), tls-session-manager (>=0.0.4), unix, unordered-containers, wai (>=3.2.2), wai-extra (>=3.0), warp (>=3.2.8), warp-tls (>=3.2.12) [details] |
| License | Apache-2.0 |
| Copyright | 2023 Bin Jin |
| Author | Bin Jin |
| Maintainer | bjin@ctrl-d.org |
| Uploaded | by BinJin at 2025-01-19T14:03:41Z |
| Category | Web |
| Home page | https://github.com/bjin/hprox#readme |
| Bug tracker | https://github.com/bjin/hprox/issues |
| Source repo | head: git clone https://github.com/bjin/hprox |
| Distributions | NixOS:0.6.4 |
| Executables | hprox |
| Downloads | 2670 total (72 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2025-01-19 [all 1 reports] |
Readme for hprox-0.6.4
[back to package description]hprox
hprox is a lightweight HTTP/HTTPS proxy server.
Features
- Basic HTTP proxy functionality.
- Basic password authentication.
- Enables TLS encryption, requiring a valid certificate. Supports TLS 1.3 and HTTP/2, also known as SPDY Proxy.
- TLS SNI validation (blocks all clients with an invalid domain name).
- Provides a PAC file for seamless client-side configuration, compatible with browsers like Chrome and Firefox.
- Websocket redirection (compatible with v2ray-plugin).
- Reverse proxy support (redirects requests to a fallback server).
- DNS-over-HTTPS (DoH) support.
- naiveproxy compatible padding (HTTP Connect proxy).
- HTTP/3 (QUIC) support (
h3protocol). - ACME
http-01challenge as specified by RFC8555, see acme.sh stateless mode. - Designed as a middleware, ensuring compatibility with any Haskell Web Application built using the
waiinterface. Refer to library documents for details.
Installation
hprox is designed to build and function seamlessly on all Unix-like operating systems with GHC support, as well as on Windows environments.
stack is recommended for building hprox.
stack setup
stack install
Alternatively, you have the option to utilize the statically linked binary available in the latest release.
Usage
Utilize hprox --help to view a comprehensive list of options along with detailed explanations.
- To run
hproxon port 8080 with simple password authentication (passwords will be Argon2-hashed after first run):
echo "user:pass" > userpass.txt
hprox -p 8080 -a userpass.txt
- To run
hproxwith TLS encryption on port 443, with a certificate forexample.comobtained with acme.sh:
hprox -p 443 -s example.com:$HOME/.acme.sh/example.com/fullchain.cer:$HOME/.acme.sh/example.com/example.com.key
Browsers can be configured with the PAC file URL https://example.com/.hprox/config.pac.
- For integration with
v2ray-pluginand a fallback page to the Ubuntu archive:
v2ray-plugin -server -localPort 8080 -mode websocket -host example.com -remotePort xxxx
hprox -p 443 -s example.com:fullchain.pem:privkey.pem --ws 127.0.0.1:8080 --rev archive.ubuntu.com:80
Clients can establish connections using the plugin option tls;host=example.com.
- Enable HTTP/3 (QUIC) on UDP port 8443, enable DoH support (redirect to 8.8.8.8), and add naiveproxy compatible padding:
hprox -p 443 -q 8443 -s example.com:fullchain.pem:privkey.pem -a userpass.txt --naive --doh 8.8.8.8
Then DoH can be accessed at https://example.com/dns-query.
License
hprox is licensed under the Apache license. Refer to the LICENSE file for comprehensive details.