Sto cercando di capire le differenze tra ssh da -L a -D. C'è qualcos'altro tranne che -D è solo SOCKS?
Grazie!
Sto cercando di capire le differenze tra ssh da -L a -D. C'è qualcos'altro tranne che -D è solo SOCKS?
Grazie!
Risposte:
ssh -L
apre una porta locale. Tutto ciò che si invia a quella porta viene messo attraverso la connessione SSH e lascia attraverso il server. Se lo fai, ad esempio, ssh -L 4444:google.com:80
se apri http://localhost:4444
sul tuo browser, vedrai effettivamente la pagina di Google.
ssh -D
apre una porta locale, ma non ha un endpoint specifico come con -L
. Invece, finge di essere un proxy SOCKS. Se apri, ad esempio, ssh -D 7777
quando dici al tuo browser di usare localhost:7777
come proxy SOCKS, tutto ciò che il tuo browser richiede passa attraverso il tunnel ssh. Su Internet pubblico, è come se stessi navigando dal tuo server SSH invece che dal tuo computer.
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.
ssh -L 4444:google.com:80
non funziona per me, richiede un altro parametro per l'accesso, come user@example.com
In SSH, -D
specifica un port forwarding "dinamico" locale a livello di applicazione.
SSH -D [bind_address:]port
Specifica un port forwarding "dinamico" locale a livello di applicazione. Funziona assegnando un socket per ascoltare la porta sul lato locale, eventualmente associato al bind_address specificato. Ogni volta che viene stabilita una connessione a questa porta, la connessione viene inoltrata sul canale protetto e viene quindi utilizzato il protocollo dell'applicazione per determinare a quale connessione connettersi dalla macchina remota. Attualmente sono supportati i protocolli SOCKS4 e SOCKS5 e ssh fungerà da server SOCKS. Solo root può inoltrare porte privilegiate. Il port forwarding dinamico può anche essere specificato nel file di configurazione.
Gli indirizzi IPv6 possono essere specificati con una sintassi alternativa: porta [bind_address /] o racchiudendo l'indirizzo tra parentesi quadre.
Solo il superutente può inoltrare porte privilegiate. Per impostazione predefinita, la porta locale è associata in base all'impostazione GatewayPorts. Tuttavia, è possibile utilizzare un indirizzo_indirizzamento esplicito per associare la connessione a un indirizzo specifico. Il bind_address di "localhost" indica che la porta di ascolto deve essere associata solo per uso locale, mentre un indirizzo vuoto o '*' indica che la porta dovrebbe essere disponibile da tutte le interfacce.
Inoltre, ssh -L
specifica che la porta specificata sull'host locale (client) deve essere inoltrata all'host e alla porta dati sul lato remoto.
SSH -L [bind_address:]port:host:hostport
Specifica che la porta specificata sull'host locale (client) deve essere inoltrata all'host e alla porta dati sul lato remoto. Funziona assegnando un socket per ascoltare la porta sul lato locale, eventualmente associato al bind_address specificato. Ogni volta che viene stabilita una connessione a questa porta, la connessione viene inoltrata sul canale protetto e viene stabilita una connessione per ospitare l'hostport della porta dalla macchina remota. Il port forwarding può anche essere specificato nel file di configurazione. Gli indirizzi IPv6 possono essere specificati con una sintassi alternativa: [bind_address /] port / host / hostport o racchiudendo l'indirizzo tra parentesi quadre.
Solo il superutente può inoltrare porte privilegiate. Per impostazione predefinita, la porta locale è associata in base all'impostazione GatewayPorts. Tuttavia, è possibile utilizzare un indirizzo_indirizzamento esplicito per associare la connessione a un indirizzo specifico. Il bind_address di "localhost" indica che la porta di ascolto deve essere associata solo per uso locale, mentre un indirizzo vuoto o '*' indica che la porta dovrebbe essere disponibile da tutte le interfacce.