Portok továbbítása terminálból
Egy beszélgetés termináljában indított szerver csak abban a térben kerül
közzétételre. A portok panelja észleli azokat a figyelőket, amelyeket ez az
alkalmazás ott indított, leképezi őket, és címet ad minden helyhez, ahonnan el
szeretné érni őket. Két tér ugyanúgy figyelhet az 5173 porton; a leképezéseik
soha nem keverednek.
Itt semmi sem nyitja meg a gépet: minden útvonalat a szerver hoz létre, kérésre, és a terminállal vagy az állomással együtt szűnik meg.
Nézze meg, mi figyel
Szekció neve “Nézze meg, mi figyel”- Nyissa meg a beszélgetés Terminál (VM) vagy gazdagépshell felületét (egy térben vagy egy PR-oldalon).
- Indítsa el a szerverét –
pnpm dev,python -m http.server 8000, bármit. - Néhány másodpercen belül a terminál jobb felső sarkában lévő csatlakozó ikon pontot kap. Kattintson rá.
A panel minden figyelt portot felsorol, a hozzá tartozó folyamattal együtt,
3000 → 3000 formában: a bal oldalon az a port, amelyre a folyamat kötötte
magát, a jobb oldalon az, amelyen helyben válaszol (ugyanaz a szám, amikor az
szabad volt a gépén). Minden sor azt is jelzi, hogy az asztali localhost, a
Böngésző (VM) és az Android el tudja-e érni.
A felderítés elszigetelt: a Terminál (VM) lekérdezése az adott vendéggépen belül történik; a gazdagépshell lekérdezése az adott munkamenet PTY-folyamatfából. Más terek és a Mac gépén futó egyéb folyamatok nem kerülnek listázásra.
Az ebben a terminálban megjelenő új portok automatikusan továbbításra kerülnek. Kapcsolja ki ugyanabban a panelben a Portok automatikus továbbítása lehetőséget, ha csak a saját maga által hozzáadottakat szeretné.
Érje el erről a számítógépről
Szekció neve “Érje el erről a számítógépről”Használja a sorban a Helyi URL másolása lehetőséget – http://localhost:3000.
A továbbítás csak loopbacken figyel, így a hálózatán semmi más nem látja.
Ha két tér egyaránt a vendéggép 5173 portját teszi elérhetővé, és a gépén már
foglalt a 127.0.0.1:5173, a második tér megtartja a vendéggép 5173 portját,
és egy ideiglenes helyi portot kap. A Másolás URL a jobb oldali számot
használja.
Gazdagépshell esetén a folyamat már a gépén fut. Ugyanazon helyi port leképezése hatástalan; ha egy másik helyi portot választ, a loopback proxy az Ön által választott portra kötődik.
A --host (vagy a 0.0.0.0-ra kötés) nem teszi képessé az elszigetelt
Böngészőt (VM) arra, hogy elérjen egy a Macen futó szervert. A vendéggépnek
saját loopbackje van; a szerver akkor létesít alagutat abba a vendéggépbe,
amikor a Böngésző fül ugyanabban a térben van.
Érje el a Böngészőből (VM)
Szekció neve “Érje el a Böngészőből (VM)”Nyissa meg az elszigetelt böngészőt ugyanabban a beszélgetésben. Írja be,
hogy localhost:<left-hand port> – az a szám, amelyre a folyamat kötötte
magát. Egy eltérő hozzárendelés (5173 → 3000) esetén a böngésző a jobb oldali
számon is válaszol, így a Másolás URL ott is működik. Egy ügynök browser_use
hívása bármelyikre navigálhat. Az A térben futó szerver soha nem jelenik meg
localhost:5173 címként a B tér böngészőjében.
A localhost-ot használja, ne egy LAN IP-t és ne a --host kapcsolót. A
vendéggépnek saját loopbackje van; az alagút ott az IPv4-en és az IPv6-on is
figyel.
Azok az oldalak, amelyek egyszerre sok kapcsolatot nyitnak (tucatnyi erőforrás, egy live reload socket), ugyanazt az alagutat használják. A Böngésző (VM) egyetlen állandó exec folyamatra multiplexeli őket, így a hirtelen lecsapó lekérések nem kapcsolatonként egy-egy új folyamatot indítanak, és nem futnak időtúllépésbe egy üres fehér oldalként.
Egy térben belül az ugyanazon a számon futó Terminál (VM) továbbítása elsőbbséget élvez a gazdagépshell-lel szemben. A tereken átívelve nincs elsőbbség – ezek külön leképezések.
Érje el Androidról
Szekció neve “Érje el Androidról”Nyissa meg az adott tér Android fülét. Az emulátor localhost:<port> címe
ekkor erre a térre közzétett portra lesz fordítva (adb reverse). Egy emulátor
az egész eszközre érvényes: ha a B teret csatlakoztatja, a :5173 átirányul
B-re, és az A-é megszűnik. Zárja be a fület, és azok a fordított továbbítások,
amelyeket ez az állomás létrehozott, eltávolításra kerülnek.
Az iOS Simulator maga a Mac – itt nincs fordított továbbítás. Egy fizikai iPhone-hoz továbbra is helyi hálózati megosztás kell.
Ossza meg a hálózatán
Szekció neve “Ossza meg a hálózatán”A ⋯ → Megosztás a helyi hálózaton a portot <server-ip>:<random port>
címen teszi elérhetővé – hasznos, ha a telefonján akarja megnyitni az oldalt,
vagy ha a szerver egy másik gépen fut.
- A helyi hálózati portot mindig az operációs rendszer osztja ki, soha nem a vendéggép száma, így a kitettség egy szándékos, látható cím, nem pedig kitalálható.
- Privát (csak loopback) marad, amíg át nem állítja, és a ⋯ → Csak helyi leveszi a hálózatról.
Adjon neki nevet – HTTPS-sel
Szekció neve “Adjon neki nevet – HTTPS-sel”A ⋯ → Böngésződomain beállítása (.test) egy dev-tartományt rendel a
porthoz, például myapp.test. A Böngészőn (VM) belül a https://myapp.test
ezután érvényes lakat kíséretében tölti be a szervert – hasznos mindenhez, ami
másképp viselkedik egy elnevezett originon vagy egy biztonságos kontextusban
(sütik, service workerek, OAuth-visszahívások).
- A tartományoknak
.testvagy.localhostvégződésűnek kell lenniük – ez a két, fejlesztésre fenntartott TLD, így egy dev-név soha nem fedhet el egy valódi webhelyet. - A tartománynevek egyediek a szerveren; a portszámok nem. Két tér
egyaránt használhatja az
5173-at, de nem jelenthetik be mindketten amyapp.testnevet. - A tanúsítvány egy helyi hitelesítésszolgáltatótól származik, amelyet a szerverén állítanak ki, amikor először szükség van rá. A kulcsai a szerver adatkönyvtára alatt élnek, és soha nem kerülnek be egyetlen vendéggépbe sem; az elszigetelt böngésző pontosan azt az egy kulcsot bízza meg, így a valódi internet felé irányuló TLS továbbra is a szokásos módon érvényesül.
- A tartománynév csak a Böngészőn (VM) belül oldható fel. A gazdagépen futó
saját böngészője helyette a
localhost:<port>címet használja. - A sima
http://myapp.testis működik.
Továbbítson portot kézzel
Szekció neve “Továbbítson portot kézzel”A panel alján lévő Port hozzáadása egy portot még azelőtt leképez, hogy bármi figyelne rajta (illetve attól függetlenül, hogy figyel-e). A kézi továbbítás megtartja a címét, miközben a szervere újraindul – a sor addig nem figyel állapotot mutat, amíg vissza nem tér –, míg az automatikus továbbítások eltűnnek, amikor a portjuk megszűnik. Gazdagépshell esetén más helyi portot is beállíthat.
Hogyan marad elszigetelt
Szekció neve “Hogyan marad elszigetelt”A portok munkaterület és tér szerint vannak kulcsolva. A hypervisor saját porttérképe a gép indításakor rögzül, így a Terminál (VM) két szűk, a szerver által vezérelt csatornán halad: egy előre létrehozott bejövő sávon a vendéggépbe, amely nem hajlandó olyan portra csatlakozni, amelyen a vendéggép valójában nem figyel, valamint a szerver által a Böngésző (VM) és az Android számára nyitva tartott fordított alagutakon. A gazdagépshell soha nem pásztázza végig az egész gépet. Soha nem jön létre figyelő egyetlen vendéggépen belül sem, amelyet a szerver ne tett volna oda, és minden a terminállal vagy az állomással együtt lebontásra kerül. A tervet az Állomások és elszigetelt környezetek ismerteti; a pontos fenntartott portok és tartományszabályok az állomások referenciájában találhatók.
Kapcsolódó
Szekció neve “Kapcsolódó”- Tesztgép adása egy ügynöknek – állomások megnyitása, figyelése és átvétele
- Állomások referenciája – fenntartott portok, dev-TLD-k, alapértékek