You can watch images with fbi
:
NAME
fbi - linux framebuffer imageviewer
SYNOPSIS
fbi [ options ] file ...
DESCRIPTION
fbi displays the specified file(s) on the linux console using the framebuffer device. PhotoCD, jpeg, ppm,
gif, tiff, xwd, bmp and png are supported directly. For other formats fbi tries to use ImageMagick's convert.
Example command:
$ fbi path/to/file.jpg
Esto es solo una teoría, pero lo que sospecho que está sucediendo es que las conexiones TCP para sus sesiones ssh están muriendo, pero el "servidor en la nube" no lo está detectando. Entonces, cuando va a hacer una conexión a localhost -p 23xx
, el proceso ssh todavía está allí y escuchando, pero cuando intenta enviar datos de regreso al Pi, se cuelga hasta que se encuentra el número máximo de retransmisiones de TCP y finalmente decide que la conexión es muerto y sale (dices que se cuelga para siempre, pero apuesto a que si esperas lo suficiente obtendrás un restablecimiento de la conexión ).
Ahora, suponiendo que tiene el Pi configurado para volver a conectarse si el túnel ssh muere, podría pensar que esto debería solucionar el problema. Hay un par de problemas potenciales con esta idea. Primero, es posible que Pi tampoco esté detectando la conexión muerta. Entonces, hasta que intente enviar datos y alcance el límite de retransmisiones de TCP, no verá la conexión inactiva y se reconectará. El segundo problema potencial es que incluso si detecta la conexión inactiva e intenta volver a conectarse, no podrá establecer el oyente en el servidor de la nube porque el ssh anterior todavía está allí y se aferra al puerto.
La solución aquí es configurar ssh para que pueda detectar las conexiones inactivas.Hay algunas formas de hacerlo, TCP KeepAlive y SSH KeepAlive. (referencia:https://unix.stackexchange.com/a/34201/4358)
La configuración de TCP KeepAlive(TCPKeepAlive
en ssh config )utiliza la funcionalidad de mantenimiento nativo -de TCP. Básicamente, el kernel envía un ACK de TCP vacío cada X segundos, y cuando no recibe un ACK del otro extremo (o se restablece ), cierra la conexión que notifica a la aplicación (SSH ).
SSH KeepAlive (la configuración ServerAlive*
y ClientAlive*
)es similar pero opera en una capa más alta. Aquí, el proceso SSH envía datos reales a través de la conexión y busca una respuesta. Esto debería detectar una conexión inactiva tan bien como un TCP KeepAlive normal, sin embargo, es más probable que mantenga la conexión viva, ya que los saltos en el medio pueden reconocer los paquetes TCP KeepAlive e ignorarlos, y agotar el tiempo de espera de la conexión inactiva. Pero un SSH KeepAlive no se puede reconocer porque parece tráfico real en cualquier salto en el medio.
En el raspberry Pis, agregue la siguiente configuración a la configuración de su cliente ssh(~/.ssh/config
o/etc/ssh/ssh_config
):
ServerAliveInterval 15
ServerAliveCountMax 1
En el servidor, agregue la siguiente configuración a su configuración del demonio ssh(/etc/ssh/sshd_config
):
ClientAliveInterval 20
ClientAliveCountMax 1
Tenga en cuenta que hice el valor del Intervalo ligeramente más alto. La razón de esto es solo para que ambos lados no envíen sus mensajes KeepAlive exactamente al mismo tiempo y se crucen en el cable. No hay daño real en esto, solo una pequeña ineficiencia. Tampoco importa qué lado esté más alto, siempre que sean diferentes.
У меня такая же проблема.
$ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.9 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::d949:d257:c622:3388 prefixlen 64 scopeid 0x20<link>
ether 18:1d:ea:00:4e:cf txqueuelen 1000 (Ethernet)
RX packets 333970 bytes 471184965 (449.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 76462 bytes 9787485 (9.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Измените значение mtu на 1200.(MTU)
$ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1200
inet 192.168.1.9 netmask 255.255.255.0 broadcast 192.168.1.255
ether 18:1d:ea:00:4e:cf txqueuelen 1000 (Ethernet)
RX packets 334117 bytes 471271158 (449.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 76604 bytes 9808842 (9.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
После этого SSH подключился, как и ожидалось. Надеюсь, этот ответ сократит ваш поиск обходных путей.:)