# tinyPortMapper **Repository Path**: andrewgithub/tinyPortMapper ## Basic Information - **Project Name**: tinyPortMapper - **Description**: A Lightweight Port Mapping/Forwarding Utility using epoll/libev, supports IPv4 and IPv6 for both TCP and UDP - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: branch_libev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-08 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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-/tinyPortMapper usage: ./this_program -l : -r : [options] main options: -t enable TCP forwarding/mapping -u enable UDP forwarding/mapping other 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