Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wangyu-/tinyPortMapper
A Lightweight Port Mapping/Forwarding Utility using epoll/libev, supports IPv4 and IPv6 for both TCP and UDP
https://github.com/wangyu-/tinyPortMapper
port-forwarding tcp-proxy udp-proxy
Last synced: about 2 months ago
JSON representation
A Lightweight Port Mapping/Forwarding Utility using epoll/libev, supports IPv4 and IPv6 for both TCP and UDP
- Host: GitHub
- URL: https://github.com/wangyu-/tinyPortMapper
- Owner: wangyu-
- License: mit
- Created: 2017-11-01T17:11:08.000Z (almost 7 years ago)
- Default Branch: branch_libev
- Last Pushed: 2023-07-22T18:48:24.000Z (about 1 year ago)
- Last Synced: 2024-06-01T22:46:36.204Z (4 months ago)
- Topics: port-forwarding, tcp-proxy, udp-proxy
- Language: C++
- Homepage:
- Size: 358 KB
- Stars: 621
- Watchers: 31
- Forks: 185
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# tinyPortMapper (or tinyPortForwarder)
A Lightweight High-Performance Port Mapping/Forwarding Utility using epoll, Supports both TCP and UDP# Supported Platforms
Linux host (including desktop Linux,Android phone/tablet, OpenWRT router, or Raspberry PI). Binaries of `amd64` `x86` `mips_be` `mips_le` `arm` are provided.# Getting Started
### Installing
Download binary release from https://github.com/wangyu-/tinyPortMapper/releases
### Running
Assume you want to map/forward local port 1234 to 10.222.2.1:443
```
# for both TCP and UDP
./tinymapper_amd64 -l0.0.0.0:1234 -r10.222.2.1:443 -t -u# for TCP only
./tinymapper_amd64 -l0.0.0.0:1234 -r10.222.2.1:443 -t# for UDP only
./tinymapper_amd64 -l0.0.0.0:1234 -r10.222.2.1:443 -u# for ipv6, both TCP and UDP
# ipv6 address must be surrounded with `[]`, ipv4 address must NOT be surrounded with `[]`
./tinymapper_amd64 -l[::]:1234 -r[2001:19f0:7001:1111:00:ff:11:22]:443 -t -u
```##### NOTE
```
# local port and remote port can be the same
./tinymapper_amd64 -l0.0.0.0:443 -r10.222.2.1:443 -u# you can also use 6-to-4 or 4-to-6 forward
./tinymapper_amd64 -l0.0.0.0:1234 -r[2001:19f0:7001:1111:00:ff:11:22]:443 -t -u
./tinymapper_amd64 -l[::]:1234 -r44.55.66.77:443 -t -u# you can also use ipv4-mapped ipv6 address
# this is especially useful if you want to play with ipv6 and you dont have a real ipv6 address
./tinymapper_amd64 -l[::]:4433 -r[::ffff:10.222.2.1]:443 -t -u
./tinymapper_amd64 -l[::ffff:0.0.0.0]:4433 -r[::ffff:10.222.2.1]:443 -t -u
```
# Options
```
tinyPortMapper
git version:25ea4ec047 build date:Nov 4 2017 22:55:23
repository: https://github.com/wangyu-/tinyPortMapperusage:
./this_program -l : -r : [options]main options:
-t enable TCP forwarding/mapping
-u enable UDP forwarding/mappingother options:
--sock-buf buf size for socket, >=10 and <=10240, unit: kbyte, default: 1024
--log-level 0: never 1: fatal 2: error 3: warn
4: info (default) 5: debug 6: trace
--log-position enable file name, function name, line number in log
--disable-color disable log color
-h,--help print this help message
```# Peformance Test
```
root@debian9:~# iperf3 -c 127.0.0.1 -p5202
Connecting to host 127.0.0.1, port 5202
[ 4] local 127.0.0.1 port 37604 connected to 127.0.0.1 port 5202
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 696 MBytes 5.84 Gbits/sec 0 639 KBytes
[ 4] 1.00-2.00 sec 854 MBytes 7.17 Gbits/sec 0 639 KBytes
[ 4] 2.00-3.00 sec 727 MBytes 6.10 Gbits/sec 0 639 KBytes
[ 4] 3.00-4.00 sec 670 MBytes 5.62 Gbits/sec 0 639 KBytes
[ 4] 4.00-5.00 sec 644 MBytes 5.40 Gbits/sec 0 639 KBytes
[ 4] 5.00-6.00 sec 957 MBytes 8.03 Gbits/sec 0 639 KBytes
[ 4] 6.00-7.00 sec 738 MBytes 6.19 Gbits/sec 0 639 KBytes
[ 4] 7.00-8.00 sec 714 MBytes 5.99 Gbits/sec 0 639 KBytes
[ 4] 8.00-9.00 sec 817 MBytes 6.85 Gbits/sec 0 639 KBytes
[ 4] 9.00-10.00 sec 619 MBytes 5.19 Gbits/sec 0 639 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 7.26 GBytes 6.24 Gbits/sec 0 sender
[ 4] 0.00-10.00 sec 7.26 GBytes 6.24 Gbits/sec receiver```
#### Details and more test results at:
https://github.com/wangyu-/tinyPortMapper/wiki/Performance-Test