{{tag>ssh tunel portmap}}

====== Настройка SSH тунеля ======

===== Строим тунель из сети в мир. =====

==== ssh ====

<code bash>
$ ssh -f -N -R 2222:10.11.12.13:22 username@99.88.77.66
$ ssh -p 345 -v -N -R 3307:10.11.12.13:3306 username@99.88.77.66
</code>

Если ssh запущен на нестандартном порту -p 345

<code bash>
$ ssh -p2222 localhost - мы попадём на хост 10.11.12.13
$ nc localhost -p 3307 - попадем на MySql хоста 10.11.12.13
</code>

=== Ключи ===

  * -f 
  * -N 
  * -v
  * -p - ssh Порт
  * -R позволяет удаленные обращения (remote) направлять на (local) сервер.

<code bash>
$ ssh -f -N -R 2080:10.11.12.14:80 username@99.88.77.66
</code>

Введя на хосте 99.88.77.66:

<code bash>
$ w3m -dump http://localhost:2080
</code>
  
===== Строим тунель из мира в сеть. =====

==== SSH ====

<code bash>
$ ssh -f -N -L 4080:192.168.0.10:80 nameuser@88.77.66.55
$ ssh -p 345 -v -N -L 3307:localhost:3306 username@99.88.77.66
$ ssh -L 8080:remote-host-which-wait-connect.com:443 username@99.88.77.66
</code>

=== Ключи ===

  * -f 
  * -N не выполнять команды, поднимает только тунель
  * -L позволяет локальные обращения (Local) направлять на удалённый сервер.
  * -v
  * -p - ssh Порт

Аналогично, вводим на своём хосте:

<code bash>
$ w3m -dump http://localhost:4080
</code>

и получаем доступ к web-ресурсу узла 192.168.0.10, который находится за хостом 88.77.66.55.

===== SOCKS5 =====

<code bash>
$ ssh -p 22 username@99.88.77.66 -v -N -D 3128
</code>

===== Статьи =====

  * http://habrahabr.ru/post/122445/
