1.0.4 • Published 1 year ago

hyperforward v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

hyperforward

CLI and library to forward peer-to-peer end-to-end encrypted connections.

npm.io npm.io npm.io

Install

npm i -g hyperforward

Usage

Usage: hyperforward [options] [command]

CLI to forward P2P E2E encrypted connections

Options:
  -v, --version                Output the current version
  -h, --help                   display help for command

Commands:
  remote [options] <hostname>  Create a P2P server that forwards to a remote hostname
  local [options] <hostname>   Create a local server that forwards to a P2P server
  keygen <name>                Create a seed key by name
  add <name> <public key>      Add a known public key by name
  rm <name>                    Remove a key by name
  print <name>                 Print the public key by name
  ls                           List my own keys and known peers
  migrate [options]            Migrate old keys to the new directory and format
  help [command]               display help for command

Examples

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...0fed9c5e22d52a0c0e927c

Other 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:8080

Now 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 cristian

Private connection

Same as the first example but with specific authorization.

1) lukks shares the remote server 127.0.0.1:3000 allowing only cristian

hyperforward remote 127.0.0.1:3000 --key lukks --firewall cristian

2) cristian creates a local server 127.0.0.1:8080 to receive from lukks

hyperforward local 127.0.0.1:8080 --key cristian --connect lukks

--firewall is a list of names or public keys comma separated.\ --connect can be a name or public key.

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

1) Each service should have their own key pair:

hyperforward keygen http1
hyperforward keygen vnc1
hyperforward keygen proxy1

2) 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 http1
hyperforward remote 127.0.0.1:4001 --key vnc1 --firewall cristian,lukks
hyperforward remote 127.0.0.1:1090 --key proxy1

3) Other peers can connect to your services:

Let's say "lukks" would like to use the VNC (as he's authorized):

hyperforward local 127.0.0.1:4001 --key lukks --connect vnc1

Later, anyone would like to use your proxy:

hyperforward local 127.0.0.1:1090 --connect proxy1

License

MIT

1.0.4

1 year ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

0.5.0

2 years ago

0.5.1

2 years ago

0.6.3

2 years ago

0.6.2

2 years ago

0.6.5

2 years ago

0.6.4

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.4.8

3 years ago

0.4.7

3 years ago

0.4.6

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.34

3 years ago

0.3.33

3 years ago

0.3.32

3 years ago

0.3.31

3 years ago

0.3.30

3 years ago

0.3.29

3 years ago

0.3.28

3 years ago

0.3.27

3 years ago

0.3.26

3 years ago

0.3.25

3 years ago

0.3.24

3 years ago

0.3.23

3 years ago

0.3.22

3 years ago

0.3.21

3 years ago

0.3.20

3 years ago

0.3.19

3 years ago

0.3.18

3 years ago

0.3.17

3 years ago

0.3.16

3 years ago

0.3.15

3 years ago

0.3.14

3 years ago

0.3.13

3 years ago

0.3.12

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.3.9

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago