SSH: Туннелирование
Туннель для X-Server
Достаточно типовая задача. Вы работаете за машиной на которой запущен X-Server (к примеру xorg, xfree86 или что-то из коммерческих аналогов), и у Вас возникло непреодолимое желание поработать с удалённой машиной и неприменно воспользоваться каким нибудь приложением требующим красивых графических окошек. К примеру xcalc, но это не столь важно.
В дни своей бурной молодости я с радостью первооткрывателя заходил через ssh на удалённую машину. Прописывал там переменную DISPLAY, а на локальной машине разрешал иксам подключение xhost remote-host. Теперь я постарел, стал ленивый и совершаю меньше телодвижений.
local-side $ ssh -X remote-user@remote-host remote-side$ xcalc
Всё оказалось просто. И, замечу, безопасно, поскольку туннель проложен через шифрованное соединение.
Произвольные туннели
Прокладывать произвольные туннели чуть сложнее, чем туннель для иксов. Для этого служат ключи -L и -R.
-R [bind_address:]port:host:hostport
Прокладывает туннель с удалённой (Remote) машины на локальную.
Действие таково. На удалённой машине открывается на прослушивание порт port, если нужно его можно привязать к конкретному адресу bind_address. При подключении клиента на этот порт подключение пробрасывается через шифрованное соединение на машину host (т.е. не обязательно на ту, с которой Вы подключились по SSH) на порт hostport.
Аналогичным образом прокладывается туннель с локальной (Local) машины на удалённую.
-L [bind_address:]port:host:hostport
Понятно, что теперь порт на прослушивание будет открываться на Вашей машине.
Ключи могут повторяться и комбинироваться. Так Вы сможете за один раз создать несколько туннелей.
При использовании IPv6 адресации следует использовать альтернативную форму записи:
-R [bind_address/]port/host/hostport -L [bind_address/]port/host/hostport
SOCKS
С помощью опции -D bind-local-port можно создать SOCKS4/5 сервер на bind-local-port порту локальной машины.
ssh -D 2080 remote-user@remote-hostоткроет SSH соединение и откроет на
2080 порту SOCKS сервер запросы к которому будут туннелироваться на удалённую машину и уже оттуда будет производится подключение.
Замечание: Любое приложение можно научить работать через SOCKS с помощью утулиты tsocks . Так же можно обратить внимание на proxychains.
— Ivan A-R 23.07.2006 14:06







Дискуссия
- **полужирный**
- //курсив//
- > цитата
- [[http://link | Заголовок ссылки]]
Больше о синтаксисе...