All Projects → kintoandar → Fwd

kintoandar / Fwd

Licence: mit
🚂 The little forwarder that could

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Fwd

Start Server And Test
Starts server, waits for URL, then runs test command; when the tests end, shuts down server
Stars: ✭ 879 (+333%)
Mutual labels:  utility, cli
Npm Quick Run
Quickly run NPM script by prefix without typing the full name
Stars: ✭ 97 (-52.22%)
Mutual labels:  utility, cli
Unidump
hexdump(1) for Unicode data
Stars: ✭ 31 (-84.73%)
Mutual labels:  utility, cli
Git Repo
Git-Repo: CLI utility to manage git services from your workspace
Stars: ✭ 818 (+302.96%)
Mutual labels:  utility, cli
Speedtest Go
CLI and Go API to Test Internet Speed using speedtest.net
Stars: ✭ 128 (-36.95%)
Mutual labels:  cli, network
Pothosblocks
A collection of core processing blocks
Stars: ✭ 7 (-96.55%)
Mutual labels:  utility, network
Telegram Messages Dump
Command-line tool to dump message history of a Telegram chat.
Stars: ✭ 96 (-52.71%)
Mutual labels:  utility, cli
Jql
A JSON Query Language CLI tool
Stars: ✭ 368 (+81.28%)
Mutual labels:  utility, cli
Thaw Carrots
Thaw carrots by warming up your laptop to a specific temperature
Stars: ✭ 120 (-40.89%)
Mutual labels:  utility, cli
Httpcat
httpcat is a simple utility for constructing raw HTTP requests on the command line.
Stars: ✭ 109 (-46.31%)
Mutual labels:  utility, cli
Backslide
💦 CLI tool for making HTML presentations with Remark.js using Markdown
Stars: ✭ 679 (+234.48%)
Mutual labels:  utility, cli
Txeh
Go library and CLI utilty for /etc/hosts management.
Stars: ✭ 181 (-10.84%)
Mutual labels:  utility, network
Saws
A supercharged AWS command line interface (CLI).
Stars: ✭ 4,886 (+2306.9%)
Mutual labels:  utility, cli
Executor
Watch for file changes and then execute command. Very nice for test driven development.
Stars: ✭ 14 (-93.1%)
Mutual labels:  utility, cli
Remarshal
Convert between CBOR, JSON, MessagePack, TOML, and YAML
Stars: ✭ 421 (+107.39%)
Mutual labels:  utility, cli
Crap
Composer Require Aliased Packages: define aliases for your favorite Composer packages.
Stars: ✭ 86 (-57.64%)
Mutual labels:  utility, cli
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (+36.45%)
Mutual labels:  cli, network
Haxor News
Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
Stars: ✭ 3,342 (+1546.31%)
Mutual labels:  utility, cli
Machina
Network capture library for realtime TCP/IP decoding from a windows application. Includes an extension library to support FFXIV data capture.
Stars: ✭ 102 (-49.75%)
Mutual labels:  utility, network
Fselect
Find files with SQL-like queries
Stars: ✭ 3,103 (+1428.57%)
Mutual labels:  utility, cli

Table of Contents

fwd - The little forwarder that could

Travis

About

fwd is a network port forwarder written in golang.

It's cross platform, supports multiple architectures and it's dead simple to use.

Read all about it in this article.

Use Cases

fwd ♥️ ngrok

I must admit ngrok was an huge inspiration for fwd. If you don't know the tool you should definitely check out this talk from @inconshreveable.

This tool combo (fwd + ngrok) allows some wicked mischief, like taking firewall hole punching to another level! And the setup is trivial.

ngrok allows to expose a local port on a public endpoint and fwd allows to connect a local port to a remote endpoint. You see where I'm heading with this... With both tools you can connect a public endpoint to a remote port as long as you have access to it.

Here's how it works:

                              +---------+                            +---------+
                        :9000 |         |            172.28.128.3:22 |         |
Internet +------------------> |   fwd   | +------------------------> |   ssh   |
tcp.ngrok.io:1234             |         | 172.28.128.1               |         |
                              +---------+                            +---------+
# get a public endpoint, ex: tcp.ngrok.io:1234
ngrok tcp 9000

# forward connections on :9000 to 172.28.128.3:22
fwd --from :9000 --to 172.28.128.3:22

# get a shell on 172.28.128.3 via a public endpoint
ssh tcp.ngrok.io -p 1234

With great power comes great responsibility. - Ben Parker

Simple Use Case

Forwarding a local port to a remote port on a different network:

                             +---------+                             +---------+
           192.168.1.99:8000 |         |             172.28.128.3:80 |         |
curl +---------------------> |   fwd   | +-------------------------> |   web   |
                             |         | 172.28.128.1                |         |
                             +---------+                             +---------+

demo

Install

Get the binaries or build it yourself.

Releases

Download prebuilt binaries for several platforms and architectures:

Releases

Go Tool

go get github.com/kintoandar/fwd/...
go install github.com/kintoandar/fwd/...

Usage

usage: fwd [<flags>]

Name:

  fwd - 🚂 The little forwarder that could

Author:

  Joel Bastos @kintoandar

Example:

  fwd --from localhost:8000 --to example.com:80

Flags:
  -h, --help                   Show context-sensitive help (also try --help-long and --help-man).
  -f, --from="127.0.0.1:8000"  Local address to bind port (host:port)
  -t, --to="example.com:80"    Remote address to forward traffic (host:port)
  -v, --version                Version details
  -l, --list                   List local network addresses available
      --log.level=info         Logging level (error, warn, info, debug)
      --log.format=logfmt      Logging format (logfmt, json)
      --config=CONFIG          Configuration file path (overrides all flags)

Configuration file

For multiport forwarding support, please check the example configuration file.

Credits

Made with ♥️ by kintoandar

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].