Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/neosmart/rsproxy

A simple, command-line TCP/UDP proxy server
https://github.com/neosmart/rsproxy

proxy rust tcp udp

Last synced: about 2 months ago
JSON representation

A simple, command-line TCP/UDP proxy server

Awesome Lists containing this project

README

        

# rsproxy
_a simple, cross-platform, multi-client TCP/UDP proxy_

`rsproxy` is a cross-platform, multi-client TCP/UDP proxy written in rust, that is designed for those "one-time" tasks where you usually end up spending more time installing a proxy server and setting up the myriad configuration files and options than you do actually using it.

## Usage

`rsproxy` is a command-line application. One instance of `rsproxy` should be started for each remote endpoint you wish to proxy data to/from. All configuration is done via command-line arguments, in keeping with the spirit of this project.

`rsproxy` is written as a wrapper around the standalone [`tcpproxy`](https://github.com/neosmart/tcpproxy) and [`udpproxy`](https://github.com/neosmart/udpproxy) proxy servers, and shells out to one or the other depending on the chosen protocol. If `tcpproxy` or `udpproxy` is not installed, `rsproxy` will attempt to install them automatically (via the `cargo` package manager).

```
rsproxy [-b BIND_ADDR] -l LOCAL_PORT -h REMOTE_ADDR -r REMOTE_PORT [[-t]|-u]

Options:
-l, --local-port LOCAL_PORT
The local port to which proxy should bind to
-r, --remote-port REMOTE_PORT
The remote port to which UDP packets should be
forwarded
-h, --host REMOTE_ADDR
The remote address to which packets will be forwarded
-b, --bind BIND_ADDR
The address on which to listen for incoming requests
-d, --debug Enable debug mode
-t, --tcp Run in TCP mode. Cannot be used together with --udp
-u, --udp Run in UDP mode. Cannot be used together with --tcp
```

Where possible, sane defaults for arguments are provided automatically. `rsproxy` defaults to TCP mode if neither `--tcp` nor `--udp` is specified.

## Installation

`rsproxy` is available via `crate`, the rust package manager. Installation is as follows:

cargo install rsproxy

Pre-complied binaries for select platforms may be available from the `rsproxy` homepage at https://neosmart.net/rsproxy/

## License

`rsproxy` is open source and licensed under the terms of the MIT public license.