Tinyproxy

From Wikipedia, the free encyclopedia

tinyproxy
Latest release 1.6.3
Written in C
OS POSIX
Platform Cross-platform
Development status Active
Genre proxy server
License GNU General Public License
Website https://wiki.banu.com/tinyproxy

tinyproxy is a HTTP proxy server daemon for POSIX operating systems. Designed from the ground up to be fast and yet small, it is apt for sites where a full featured HTTP proxy is required, but the system resources for a larger proxy are unavailable. Due to this reason, it has been put to uses such as a tether on the iPhone[1], and on the OpenWrt[2]. tinyproxy is compatible with popular web browsers, and has a number of useful features.

tinyproxy is primarily designed to run on Unix-like systems. Released under the GNU General Public License, tinyproxy is free software[3] and has been developed for a number of years. It is currently being maintained at Banu as a publicly accessible project. Ohloh analyses it to be a project with "mature, well-established codebase and increasing year-over-year development activity."[4]

Contents

[edit] Features

  • Anonymous mode: Allows you to specify which HTTP headers should be allowed through, and which should be blocked - this allows you to restrict both what data comes to your web browser from the HTTP server (eg, cookies), and to restrict what data is allowed through from your web browser to the HTTP server (eg, version information).
  • Easily modified: If you're looking to build a custom web proxy, tinyproxy is very easy to modify to your custom needs - the source is straightforward, adhering to the KISS principle. As such, it can be used as a foundation for anything you may need a web proxy to do (send patches!)
  • Remote monitoring: Using the remote monitoring feature, you can access proxy statistics from afar, letting you know exactly how busy the proxy is.
  • Load average monitoring: tinyproxy can be configured to watch the load average on most platforms, and start refusing requests when the load reaches a certain point - you may recognize this feature from sendmail.
  • Access control: You can configure tinyproxy to only allow requests from a certain subnet, or from a certain interface, thus allowing you to ensure that random, unauthorized people will not be using your proxy.
  • Secure: With a bit of configuration (specifically, making the log file owned by nobody and running it on a port >1024), tinyproxy can be made to run without any special privileges, thus minimizing the chance of system compromise. Furthermore, it was designed with an eye towards preventing buffer overflows. The simplicity of the code ensures it remains easy to spot such bugs.
  • Small footprint: As mentioned above, tinyproxy requires very little in the way of system resources - the memory footprint tends to be around 2MB with glibc, and the CPU load increases linearly with the number of simultaneous connections (depending on the speed of the connection). Thus, tinyproxy can be run on a spare, older machine, or even a workstation, without any noticeable impact on performance.


[edit] Availability in OS distributions

tinyproxy is available in various operating systems such as Ubuntu[5], Debian[6], SUSE Linux[7], Gentoo Linux[8] and FreeBSD[9].

[edit] See also

[edit] References

[edit] External links