Portál AbcLinuxu, 6. května 2025 14:19

Dotaz: ssh: Error: remote port forwarding failed for listen port

5.11.2015 21:42 nikdo
ssh: Error: remote port forwarding failed for listen port
Přečteno: 470×
Odpovědět | Admin
Na debianu (8.2) zprovoznuji reverzní ssh tunel (server centOS), ideálně pomocí autossh, ale zjednodušeně:

ssh -N -R 22222:localhost:22 server

("server" má v .ssh/config adresu, port a uživatele). S připojením není problém, to by mělo být všude stabilní. Tunel vždy chvíli funguje, ale po zhruba deseti minutách přestane odpovídat. Po jeho zrušení a opětovném zadání příkazu výše:

Error: remote port forwarding failed for listen port 22222

Podle návodů na internetu funguje na opravení, když na serveru zabiju proces, který tento port používal (nestat -> kill). Ale to je velmi nepraktické a v praxi nepoužitelné. Záhadou mně je, že toto spojení nefunguje, ale stejný tunel (samozřejmě s rozdílným portem) přes stejný server z jiného stroje (na jiné lokaci) bez komplikací funguje. Nedokázali byste poradit, jak se této blokace portu zbavit?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.11.2015 22:33 NN
Rozbalit Rozbalit vše Re: ssh: Error: remote port forwarding failed for listen port
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nekolik veci. Zaprve, pouzival jsem jeste prepinac:
-f (background fork)
-T (nealokuje pseudo tty)
[-C (komprese..) optional]
Zadruhe, spojeni pravdepodovne vyhori na timeout, necinnost Duvod muze byt rozdilna konfigurace klienta, ale port na serveru zustane "bimdnuty". To muzes overit debugovanim.
-v (-vv -vvv)
Zatreti, resenim by mohlo byt upravit konfiguraci. Naprikl ad. Pridat do .ssh/config(klient):
ServerAliveInterval 300 (5minut)
(ServerAliveCountMax 3) (3 pokusy)
Nebo parametry konfiguracnich souboru(server):
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 3
No a konecne autossh varianta(nepouzivam..):
autossh -M 20000 -f -N server -R 22222:localhost:22 -C
6.11.2015 04:48 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: ssh: Error: remote port forwarding failed for listen port
Odpovědět | | Sbalit | Link | Blokovat | Admin

Možná je lepší položit otázku abstraktněji, tedy jak dosáhnout určitého cíle. Cílem je zjevně dostat se zvenčí na nějaký stroj ve vnitřní síti, na který se z nějakého důvodu nedá zvenku routovat. Měl bych jisté tušení, jaký důvod to asi bude. Takže: Není náhodou řešením IPv6?

Před deseti lety, když ještě IPv6 nebyl všude běžně dostupný, jsem taky provozoval pár (desítek) takových SSH tunelů, aby stroje za NATem (tedy za morem a neštovicemi v jednom) mohly být dostupné skrz tohle SSH over SSH. Vždycky to stálo za hovno. Někdy tunely vydržely den, někdy hodinu. Někdy se samy obnovovaly, někdy ne. Někde někdo změnil nastavení firewallu a najednou TCP spojení automaticky vypršela po 10 minutách, pokud nebyla opravdu hodně aktivní, tedy TCP keepalive k udržení spojení nestačil. (!) Důvodem prý bylo, aby na nějakém NAT routeru nedocházely porty, když spousta spojení od strojů z vnitřní sítě zůstane viset. Tak se prostě méně aktivní nebo neaktivní spojení zabila, zkrátka ve prospěch těch, která (zdánlivě) něco dělají. Tohle byl vždycky zoufalý a předem prohraný boj. Internet, ve kterém se nedá routovat z kteréhokoliv stroje na kterýkoliv jiný, prostě není Internet, je to něco polovičatého a na houby. Do prvních videokonferenčních aplikací se v roce 2002 prostě zadala IP adresa protistrany a všechno fungovalo. NAT ale postupně způsobil, že tak běžná a samozřejmá věc jako komunikace mezi libovolnými dvěma počítači prostě fungovat přestala. Místo relativně bezpečných přímých spojení, u kterých se dá dohodnout bezpečné šifrování, zvítězily prasárny typu Skype, kde end to end šifrování není a kde je to s bezpečností opravdu zlé. Zkrátka a dobře, snaha o spolehlivě fungující permanetní SSH tunely je podle mě předem prohraná bitva, zatímco IPv6 je v každém ohledu výhra.

6.11.2015 06:35 nikdo
Rozbalit Rozbalit vše Re: ssh: Error: remote port forwarding failed for listen port
NN: Spojení je nyní celou noc stabilní, tak doufám, že to vydrží. Děkuji.

Andrej: Máš samozřejmě pravdu. Provider ale ipv6 nenabízí a před pár lety jsem zkoušel sixxs a vadila mi rychlost a stabilita. Pro moje občasné použití tedy použiji klasiku, která na pár kliknutí funguje i na androidu.
6.11.2015 07:08 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: ssh: Error: remote port forwarding failed for listen port
Ono, skôr VPN ako IPv6. Aspoň ak sa jedná o cieľ vo vnútornej sieti.
6.11.2015 15:38 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: ssh: Error: remote port forwarding failed for listen port

No ale mně IPSec road warrioři (StrongSwan) taky občas selhávají na některých divně nakonfigurovaných sítích, kde NAT záměrně nectí TCP spojení ani UDP „mapování“. Sice ne napořád, obnovují se mnohem spolehlivěji než u toho SSH, ale u některých spojení i výpadek v řádu několika desítek sekund docela dost vadí. NAT router, který si nakonfiguruju sám, takové divné věci nedělá, ale různé polorozbité sítě vidím všude možně. Internet s NATem zkrátka není Internet.

VPN (například IPSec) má přesto jednu zásadní výhodu: Road warrior může mít stálou veřejnou IP adresu (IPv6, samozřejmě). Funguje tam IPv6 přes IPv4 (i všechny 3 ostatní kombinace) a na toho road warriora se pak dá připojovat zvenčí na standardní port 22 (pokud příslušný VPN/IPSec server správně routuje), bez speciálních portů a jiných nepravidelností.

6.11.2015 15:47 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: ssh: Error: remote port forwarding failed for listen port

Mně se JuiceSSH z Androidu připojuje všude přes IPv6, kdykoliv vidí AAAA záznam… Zrovna s Androidem rozhodně problém nebude. Pokud poskytovatel neumí IPv6, je to samozřejmě horší problém. Není ale důvod používat SixXS, když je ke každé veřejné IPv4 adrese automaticky k dispozici 6to4 s 2^80 IPv6 adres. Zejména od doby, co nic.cz před cca 5 lety začal provozovat vlastní server s magickou adresou 192.88.99.1 (což je adresa, která má podle konvence vést k nejbližší 6to4 bráně), je i rychlost a stabilita bez nejmenších problémů. Jenom musí mít člověk na routeru alespoň tu jednu veřejnou IPv4 adresu, jinak už nepomůže nic. :-D

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.