atvirasis kodas · 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
$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).
$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ą.
$git clone https://github.com/eslusarenko/port-client
$cd port-client
$make build # → bin/port
Reikalinga Go 1.24+ ir Make.
$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
$port expose 8080
# kitas serveris
$port expose --server wss://myserver.example.com 8891
$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ą
# tas pats kaip --server vėliava
PORT_SERVER=wss://myserver.example.com
PORT_LOG_LEVEL=info
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