Come posso eseguire un comando su Ethernet ethernet riuscita in Arch?


1

Ho un Raspberry Pi con ArchARM in esecuzione e vorrei creare un tunnel SSH inverso non appena si collega alla rete tramite Ethernet.

Ho creato uno +xscript shell eseguibile ( ) /usr/bine vorrei che fosse eseguito ogni volta che il gestore di rete predefinito acquisisce un IP sull'interfaccia eth0.

In alternativa, qual è il modo migliore per farlo senza un tunnel SSH o l'apertura di una porta sul mio router?

Risposte:


2

puoi fare un SSH inverso con -R arg (ho scritto un articolo in francese su questo qui ) e cron o fare un servizio con.

qui le cose tradotte

user@mynewRaspberry :~$ ssh -R 61337:localhost:22 z8po@z8po.dyndns.info 

dopo aver effettuato l'accesso da un altro luogo, qui ad esempio da z8po.dyndns.info

z8po@hive :~$ ssh z8po.dyndns.info -p 61337

Ora usiamo un ciclo while nel tuo script per verificare che ssh sia riavviato per sempre.

while true do ssh -R 61337:localhost:22 z8po@z8po.dyndns.info done

puoi mantenere la tua connessione con un keep-alive su un client ssh o un server, aggiungere a / etc / ssh / sshd_config o ~ / .ssh / config the folowing line

 ClientAliveInterval 60

Non dimenticare di usare la chiave rsa inserita in paswsrod per l'accesso automatico senza richiesta, o se vuoi davvero usare la password, cambia il comando ssh con user: password @ ip ma è molto meno sicuro.

Primo metodo Cron

crea uno script verificando che sia già stato avviato, in /home/USER/autolauncher.sh

#!/bin/sh
if ps -ef | grep -v grep | grep yourscript.sh ; then
        exit 0
else
        while true do ssh -R 61337:localhost:22 z8po@z8po.dyndns.info done
        exit 0
fi

e modificarti crontab

crontab -e

aggiungilo dopo gli altri lavori cron; ogni 5 minuti avvia lo script precedente (che non funzionerà se già in esecuzione)

   */5 * * * * /home/USER/autolauncher.sh

Secondo metodo: servizio all'avvio

crea o copia lo script in init.d aggiungi i comandi usando vi:

  sudo nano /etc/init.d/autolauncher.sh

renderlo eseguibile

  sudo chmod +x /etc/init.d/autolauncher.sh

update-rc.d per creare e configurare start:

  sudo update-rc.d autolauncher.sh defaults

ora hai due metodi per rendere il tuo rasperry cercando di connettersi


Anche se non capisco ... perché c'è un ciclo while nello script cron?
tekknolagi,

1
a causa del servizio all'avvio, verrà avviato una volta e, in caso di arresto anomalo,
riavvialo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.