Firefox montras al 127.0.0.1:8000, la N2N-rando estas aktiva, la samtavolulo respondas al ping sur sia tavola adreso, kaj la retumilo ankoraŭ raportas, ke la prokuro rifuzis la konekton. Nenio en tiu ĉeno estas kontraŭdira. Tavolo donas al gastiganto atingeblan adreson sur privata reto; ĝi ne kreas procezon, kiu parolas la prokuran protokolon. La retumilo ne petas vojon al samtavolulo. Ĝi petas lokan aŭskultanton.

Ĉi tie du konektoj estas konfuzataj, kaj desegni ilin aparte klarigas plejparton de la konfuzo en unu minuto.

Du konektoj, ne unu

La unua konekto iras de la retumilo al tio, kio aŭskultas sur la loopback-pordo. Tio estas loka soketo, kaj se nenio posedas ĝin, la konekto estas rifuzata antaŭ ol unu sola paketo atingas N2N. La dua iras de la prokura procezo al la origino, kiun ĝi elprenas. Tiun vojon elektas la enkursiga tabelo de la prokura gastiganto, kaj ĝi povas esti la ordinara suprenligo, alia tunelo aŭ politika vojo, kiu havas nenion komunan kun la tavolo.

Pingi la samtavolulon pruvas, ke la tavolo povas liveri paketojn inter randaj adresoj. Ĝi pruvas nenion pri aŭskultanto sur pordo 8000, kaj nenion pri tio, ĉu tiu gastiganto povas atingi la originon. Apartaj fiaskoj, apartaj riparoj.

Kie la aŭskultanto devas vivi

Prokuro ligita al 127.0.0.1 estas intence loka: ĝi akceptas konektojn nur de la maŝino, sur kiu ĝi funkcias. Tio estas la ĝusta defaŭlto por persona prokuro kaj la malĝusta formo por kunhavi ĝin trans tavolo. Servi tavolajn samtavolulojn postulas aŭ bind-adreson sur la tavola interfaco aŭ plusendan komponanton, kiu finas la loopback-konekton kaj plusendas ĝin. Ĉiuokaze, eksplicita politiko devus decidi, kiuj tavolaj fontoj rajtas uzi la servon, ĉar malfermita prokuro en kunhava reto estas invito.

Kontrolu la faktan bind per soketa listo anstataŭ la agorda dosiero. Demono lanĉita antaŭ ol la tavolo leviĝis povas ankoraŭ esti ligita al adreso, kiu ne plu ekzistas.

localhost ne estas la samtavolulo

En la prokura kampo de la retumilo, localhost montras al la propra maŝino de la retumilo. Ĝi ne estas la rando, nek la supernodo, nek la gastiganto ĉe la malproksima fino de la tunelo. Se la prokuro funkcias sur alia samtavolulo, metu la atingeblan tavolan adreson kaj pordon de tiu samtavolulo en la kampon, poste konfirmu, ke la aŭskultanto akceptas konektojn de via randa adreso.

Supernodoj helpas randojn trovi unu la alian; ili ne estas prokura servo. Trakti supernodan adreson kiel prokuran finpunkton produktas la saman rifuzon kun plia paŝo de konfuzo.

Vojo ne povas fari manpremon

Eĉ kun la ĝusta adreso, enkursigado ne estas prokurado. HTTP-prokura konekto komenciĝas per CONNECT-peto aŭ per petlinio en absoluta formo, kaj SOCKS-prokuro komenciĝas per intertraktado pri versio kaj metodo. Enkursigilo aŭ tavolo plusendas bajtojn; ĝi ne analizas tiujn mesaĝojn nek malfermas la sekvan konekton por vi. Tial vojo, kiu funkcias por ping kaj SSH, ankoraŭ povas fiaski por retumila prokuro: la retumilo bezonas kunlaboran procezon, ne nur atingeblon.

Se la celo estas nur atingi servon sur la samtavolulo, forigu la prokuran agordon kaj uzu la tavolan adreson de la servo rekte.

Testu la limojn laŭvice

Konfirmu, ke la tavola adreso respondas, poste konfirmu, ke aŭskultanto ekzistas sur la agordita pordo, kaj notu ĝian bind-adreson. Faru unu kontrolitan peton kaj legu la prokuran protokolon, por ke vi sciu, ĉu la fiasko estas ĉe la aŭskultanto aŭ ĉe la sekva elpreno. Fine, kontrolu la vojon de la prokura gastiganto kaj la DNS-politikon por la origino.

La projekto N2N dokumentas randojn kaj supernodojn kiel tavolajn komponentojn. Ĝi ne transformas randon en aplikaĵan prokuron, kaj neniu enkursiga agordo aldonas protokolan traktilon, kiun neniu lanĉis.

Rilataj artikoloj