An efficient port forwarding utility
npm install forward.jsnpm install -g forward.js)Listen at a local port and forward incoming connections to other host:port.
```
forward.js [localAddress:]port [destHost:]port
Note:
- IPv6 address must be wrapped by square brackets, e.g.\[::1\]:8080
forward.js 8080 a.b.c:9090
`
Forward TCP port 8080 of all IPv4 interfaces to an IPv6 address's 9090 port
`
forward.js 0.0.0.0:8080 [2001:db8:a0b:12f0::1]:9090
`
Forward TCP port 8080 of all IPv6 interfaces to 192.168.1.12:9090
`
forward.js [::]:8080 192.168.1.12:9090
`Screenshot:
`
$ forward.js 9999 www.google.com:80
Using parameters {
"localAddress": "",
"localPort": 9999,
"destHost": "www.google.com",
"destPort": 80
}
Listening at [::]:9999
Incoming connection will be forwarded to [www.google.com]:80Press ENTER to toggle Log level.
0: No (default)
1: Show connection
2: Dump all req/res data
Log level 1: Show connection
Log level 2: Dump all req/res data
====[::ffff:127.0.0.1]:56618 Connected from [::ffff:127.0.0.1]:56618
====[::ffff:127.0.0.1]:56618 Connect to [www.google.com]:80
====[::ffff:127.0.0.1]:56618 Connected to [216.58.197.4]:80 src [192.168.11.3]:64287
====[::ffff:127.0.0.1]:56618 Data:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GET / HTTP/1.1
====[::ffff:127.0.0.1]:56618 Data:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
HTTP/1.1 404 Found
...
====[::ffff:127.0.0.1]:56618 Data:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
...
====[::ffff:127.0.0.1]:56618 Ended
====[::ffff:127.0.0.1]:56618 Ended
`
Do not worry about the log of listening at ::(all IPv6 interfaces),
**as far as i'v tested, on Windows and Mac OS X, listening at :: will cause
all IPv4 interfaces being listened either.(called dual-stack).**Test client: (
nc-connect.js is here)
`
$ nc-connect.js 9999
Connected to 127.0.0.1:9999 source 127.0.0.1:56618
GET / HTTP/1.1HTTP/1.1 302 Found
...
``