atvirasis kodas · parašyta Go kalba · MIT licencija

Viešinkite vietines paslaugas
internete akimirksniu

Viena komanda sukuria viešą URL bet kuriai jūsų kompiuteryje veikiančiai HTTP paslaugai. Jokių paskyrų, jokių konfigūracijos failų, jokio vargo.

$ curl -sSL https://raw.githubusercontent.com/eslusarenko/port-client/master/scripts/install.sh | sh
bash — port expose 8891
tunelis aktyvus
$port expose 8891
  → tunnel ready: https://k7qm3pxa.tnls.lt
  → forwarding to http://localhost:8891
GET  / 200 12ms
GET  /favicon.ico 200 3ms
POST /api/submit 201 47ms

Kaip tai veikia

Trys komponentai, nulis konfigūracijos.
ŽINGSNIS 01

Klientas prisijungia prie serverio

Komanda port expose atidaro nuolatinį WebSocket ryšį su viešuoju port-server. Serveris priskiria atsitiktinį subdomeną ir grąžina jį atgal.

ŽINGSNIS 02

Serveris nukreipia viešą srautą

Įeinančios HTTPS užklausos į *.tnls.lt susiejamos pagal Host antraštę ir per tunelį persiunčiamos jūsų klientui.

ŽINGSNIS 03

Klientas proksina į vietinę paslaugą

Jūsų kompiuteris gauna užklausą, persiunčia ją į localhost:8891 ir grąžina atsakymą atgal — visa tai tuo pačiu WebSocket ryšiu, su pilnu multipleksavimu.

Diegimas

Paruošti dvejetainiai failai, skirti macOS ir Linux (amd64 / arm64).
bash — diegimo scenarijus (rekomenduojama)
$curl -sSL https://raw.githubusercontent.com/eslusarenko/port-client/master/scripts/install.sh | sh
Palaiko macOS ir Linux (amd64 / arm64). Paprašo pasirinkti diegimo vietą ir patikrina kontrolinę sumą.
bash — kurti iš išeities kodo
$git clone https://github.com/eslusarenko/port-client
$cd port-client
$make build # → bin/port
Reikalinga Go 1.24+ ir Make.
bash — patikra
$port --version
port version 1.0.0
Paleiskite port ls, kad išvardytumėte vietinius TCP prievadus savo kompiuteryje.

Naudojimas

Nukreipkite į bet kurią vietinę HTTP paslaugą.
Klientas
bash — viešinti paslaugą
$port expose 8080
# kitas serveris
$port expose --server wss://myserver.example.com 8891
bash — rodyti vietinius prievadus
$port ls
IPv4
PROTO  LOCAL ADDR  PORT  PROCESS
tcp4   0.0.0.0     8080  node
tcp4   127.0.0.1   5432  postgres
$port ls --verbose
# prideda PID ir pilną komandą
bash — aplinkos kintamieji (klientas)
# tas pats kaip --server vėliava
PORT_SERVER=wss://myserver.example.com
PORT_LOG_LEVEL=info
Serveris
bash — aplinkos kintamieji (serveris)
PORT_ADDR=:8080
PORT_BASE_DOMAIN=tnls.lt
PORT_TUNNEL_TTL=24h
PORT_LOG_LEVEL=info
PORT_LOG_TYPE=plain
PORT_MAX_BODY_SIZE=10485760
PORT_PING_INTERVAL=30s
PORT_PING_TIMEOUT=1m30s
PORT_TRUST_PROXY_HEADERS=false