1
0
Fork
You've already forked snoyproxy
0
No description
  • Rust 100%
Find a file
2023年05月09日 21:11:24 +02:00
src Improve readme 2023年05月09日 21:11:24 +02:00
.gitignore wip: parsing works, getting proxy method and info works 2023年04月30日 02:55:53 +02:00
Cargo.lock ft: reload config on SIGUSR1 2023年05月09日 21:11:24 +02:00
Cargo.toml ft: reload config on SIGUSR1 2023年05月09日 21:11:24 +02:00
readme.md Improve readme 2023年05月09日 21:11:24 +02:00

snoyproxy

An HTTP proxy inspired by Tinyproxy, implemented largely as an excuse to experiment with Rust's async features.

HTTP proxying is an easy to use TCP proxying mechanism, well supported out of the box in Firefox, Chromium, wget, anything built on libcurl, ffmpeg, weechat etc.

It is not a 1:1 replacement for Tinyproxy. But for the most common use-case of a transparent proxy, it is a drop-in replacement and will respect your existing tinyproxy config.

Quickstart

Refer to the original quickstart docs for Tinyproxy.

Example config:

listen 10.200.200.1
port 8090
connectport 80
connectport 443
basicauth "user name" "pa ss wo rd"

Supported config options:

  • Port
  • Listen
  • Timeout
  • Allow/Deny (note: hostnames will not be supported)
  • BasicAuth
  • ConnectPort

Supported CLI options:

  • -c /path/to/config
    • By default, /etc/snoyproxy.conf and /etc/tinyproxy/tinyproxy.conf are tried in order.
  • -h for help and -v to print version.

Supported signals:

  • SIGUSR1 (for reloading the config file)

Unsupported

The following features originally present in Tinyproxy are not implemented in this project.

  1. Forwarding to other proxies.
  2. Features specific to plaintext-HTTP (reverse proxying, url filtering).
  3. Switching to another user/group after binding the socket.
    • Consider running directly as the user you intend to run as.
    • To bind on ports below 1024, consider lowering net.ipv4.ip_unprivileged_port_start sysctl.
  4. Running as a daemon.
    • Consider using a service manager like runit or openrc.
  5. Logging is currently quite basic and minimal, but might be improved as needed.

Author

Awal Garg https://awalgarg.me

License

This software is hereby released in the public domain.