https://github.com/prbinu/fluxtunnel
A reverse direction TLS proxy to expose services inside private network, localhost
https://github.com/prbinu/fluxtunnel
golang reverse-proxy reverse-tunnel tls-proxy tunnel
Last synced: 4 months ago
JSON representation
A reverse direction TLS proxy to expose services inside private network, localhost
- Host: GitHub
- URL: https://github.com/prbinu/fluxtunnel
- Owner: prbinu
- License: apache-2.0
- Created: 2021-02-13T18:08:19.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-02-13T19:35:10.000Z (over 5 years ago)
- Last Synced: 2025-01-19T03:41:42.688Z (over 1 year ago)
- Topics: golang, reverse-proxy, reverse-tunnel, tls-proxy, tunnel
- Language: Go
- Homepage:
- Size: 15.6 KB
- Stars: 3
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fluxtunnel
A reverse direction TLS proxy
```
+------+ +------------------+ mTLS +------------------+ +------+
|client| ------> | fluxtunnel server| <======== | fluxtunnel client|------> |target|
+------+ +------------------+ tunnel +------------------+ +------+
```
**Purpose:**
To expose services inside private networks (behind firewalls)
Example use cases: share your local desktop, terminal or web applications over Internet to customer, partner or coworker
## Usage
### Build
```bash
git clone https://github.com/prbinu/fluxtunnel.git
cd fluxtunnel/cmd/fluxtunnel
# Mac:
make darwin
# Linux
make linux
# Windows
go build -o fluxtunnel.exe main.go
```
### Example
To access a NoVNC (docker container) hosted on a localhost:
```bash
# start a noVNC docker contiainer (for testing only)
docker run -p 6080:80 centminmod/docker-ubuntu-vnc-desktop
# Server on terminal 1:
./fluxtunnel server -listen 127.0.0.1:6445 -tls-cert-file ../../test/server.crt -tls-key-file ../../test/server.key -tls-client-cacert-file ../../test/server.crt -source :6123 -target :6080
# Client on terminal 2:
./fluxtunnel client -connect 127.0.0.1:6445 -tls-cert-file ../../test/server.crt -tls-key-file ../../test/server.key -tls-server-cacert-file ../../test/server.crt -tls-server-name proxy.conduit.local -target :6080
```
To access VNC in browser, visit:
http://127.0.0.1:6123
To expose a local terminal, try `fluxtunnel` with [gotty](https://github.com/yudai/gotty):
```bash
gotty -p 6080 -w bash
```