Package Exports
- hyperforward
- hyperforward/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (hyperforward) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
hyperforward
Forward P2P E2E encrypted
Install
npm i -g hyperforwardExamples
Public connection
Already having a server (TCP, HTTP, SOCKS, VNC, etc) running in your computer o remotely:
hyperforward remote 127.0.0.1:3000
# Use this temporal public key to connect:
# 6e7c244099bf7c14314b0e...0fed9c5e22d52a0c0e927cOther peers can connect to you using the public key:
hyperforward local 127.0.0.1:8080 --connect 6e7c244099bf7c14314b0e...0fed9c5e22d52a0c0e927c
# Ready to use, listening on: 127.0.0.1:8080Now you can use the local 127.0.0.1:8080 as it will be forwarded to remote 127.0.0.1:3000
Authorization
Create named key pair:
hyperforward keygen lukks
# Ask a friend to create their key pair:
hyperforward keygen cristianPrivate connection
Same as the first example but with specific authorization.
- lukks shares the remote server 127.0.0.1:3000 allowing only cristian
hyperforward remote 127.0.0.1:3000 --key lukks --firewall cristian- cristian creates a local server 127.0.0.1:8080 to receive from lukks
hyperforward local 127.0.0.1:8080 --key cristian --connect lukksMore
hyperforward remote [ip:port] --key [name] --firewall [names or public keys comma separated]
hyperforward local [ip:port] --key [name] --connect [name or public key]
hyperforward keygen [name]
hyperforward add [name] [public_key]
hyperforward print [name]
hyperforward ls
hyperforward rm [name]Sharing multiple services
There is a security limitation: you can only use one key per forward.
You still reuse a single key (ie. lukks, cristian, etc) to easily set firewalls.
Let's say you have multiple things going on:
- HTTP server on: 127.0.0.1:3000
- VNC/NoMachine on: 127.0.0.1:4001
- SOCKS5 proxy on: 127.0.0.1:1090
- Each service should have their own key pair:
hyperforward keygen http-1
hyperforward keygen vnc-1
hyperforward keygen proxy-1- Normal remote forward each one:
In this case, only certain people should be able to use the private VNC service.
hyperforward remote 127.0.0.1:3000 --key http-1
hyperforward remote 127.0.0.1:4001 --key vnc-1 --firewall cristian,lukks
hyperforward remote 127.0.0.1:1090 --key proxy-1- Other peers can connect to your services:
Let's say "lukks" would like to use your VNC (as he's authorized):
hyperforward local 127.0.0.1:4001 --key lukks --connect vnc-1Later, anyone would like to use your proxy:
hyperforward local 127.0.0.1:1090 --connect proxy-1License
Code released under the MIT License.