dziwne dane wyjściowe w tunelowaniu ssh: dane wyjściowe nie powiodły się; połączenie nieudane: upłynął limit czasu połączenia;

18

Używam ssh [email protected] -p 1234 -D 9898polecenia do tunelowania i ustawiam firefox socks5 ip na 127.0.0.1, a jego port na 9898. Działa pomyślnie, ale w terminalu mam błąd w danych wyjściowych:

channel 39: open failed: connect failed: Connection timed out
channel 41: open failed: connect failed: Connection timed out
channel 42: open failed: connect failed: Connection timed out
channel 43: open failed: connect failed: Connection timed out
channel 44: open failed: connect failed: Connection timed out

Występuje okresowo. Co to jest? To jest problem? Co mogę zrobić?

Arash Mousavi
źródło

Odpowiedzi:

21

Wystąpiły podobne problemy. Jeśli tunelujesz z Firefoksem przez ssh, niektóre połączenia HTTP mogą po prostu przekroczyć limit czasu z powodu obciążenia serwera lub niewłaściwej konfiguracji. Gdy połączenie faktycznie przekroczy limit czasu, pojawi się komunikat o błędzie podobny do wskazanego przez Ciebie.

Możesz ukryć te wiadomości za pomocą następującego polecenia

ssh [email protected] -p 1234 -D 9898 -q

Ze strony podręcznika ssh(1)

 -q      Quiet mode.  Causes most warning and diagnostic messages to be sup-
         pressed.

Pominięcie wiadomości zapobiegnie zepsuciu ostrzeżeń przed sesjami ssh lub screen.

Gordolio
źródło
Dzięki temu rozwiązanie działa świetnie! Jedno pytanie: ten limit czasu pojawia się okresowo, nawet gdy wszystkie procesy przeglądarki są zamknięte. Próbuję ustalić, co powoduje przekroczenie limitu czasu i gdzie wysyłane jest żądanie. jakieś sugestie, jak wyświetlić więcej pełnych informacji o błędzie dla tunelu ssh?
gnarbarian
3

Ustawić GatewayPortssię yesi spróbuj ponownie.

ssh -o 'GatewayPorts yes' [email protected] -p 1234 -D 9898

man ssh_config

 DynamicForward
         Specifies that a TCP port on the local machine be forwarded over the secure channel, and the application protocol
         is then used to determine where to connect to from the remote machine.

         The argument must be [bind_address:]port.  IPv6 addresses can be specified by enclosing addresses in square
         brackets.  By default, the local port is bound in accordance with the GatewayPorts setting.  However, an explicit
         bind_address may be used to bind the connection to a specific address.  The bind_address of “localhost” indicates
         that the listening port be bound for local use only, while an empty address or ‘*’ indicates that the port should
         be available from all interfaces.

         Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh(1) will act as a SOCKS server.  Multiple for‐
         wardings may be specified, and additional forwardings can be given on the command line.  Only the superuser can
         forward privileged ports.

 GatewayPorts
         Specifies whether remote hosts are allowed to connect to local forwarded ports.  By default, ssh(1) binds local
         port forwardings to the loopback address.  This prevents other remote hosts from connecting to forwarded ports.
         GatewayPorts can be used to specify that ssh should bind local port forwardings to the wildcard address, thus
         allowing remote hosts to connect to forwarded ports.  The argument must be “yes” or “no”.  The default is “no”.
kwanty
źródło
1
Używam -o „GatewayPorts yes”, ale ten błąd wystąpił ponownie.
Arash Mousavi
GatewayPorts nie stanowi problemu. Porty bramy pozwalają serwerowi ssh nasłuchiwać portów nielokalnych. GatewayPorts staje się bardzo przydatny podczas wykonywania tunelu zwrotnego - umożliwiając hostom z sieci prywatnej ponowne połączenie się z hostem klienta ssh. Gordolio ma to powyżej: serwer SOCKS uruchomiony przez lokalnego ssh narzeka, gdy nie może dotrzeć do hosta / portu żądanego przez użytkowników klienta SOCKS (jak w przykładzie Gordolio, Firefox).
Mark