[personal profile] codedot
С помощью SSH можно реализовать туннель, например, для подключения к машине, недоступной из интернета, когда с нее самой можно подключиться к какому-либо серверу по протоколу SSH. Это бывает полезным, например, когда машина, к которой нужно организовать подключение, находится в сети, использующей NAT.

Чтобы организовать такой канал связи, который будет использовать при этом шифрование передаваемых данных, достаточно иметь удаленную машину с запущенным на ней сервером SSH и набрать следующую команду в командной строке (если используется POSIX-совместимая операционная система):

ssh -R $TUNNEL_PORT:$LOCAL_HOST:$LOCAL_PORT $REMOTE_HOST -u $REMOTE_LOGIN -p $REMOTE_PORT -N

Здесь:

``-N'' означает, что не нужно запускать какие-либо команды на удаленной машине;
``-p $REMOTE_PORT'' указывает на какой порт нужно подключаться к удаленному серверу SSH;
``-u $REMOTE_LOGIN'' устанавливает имя пользователя на удаленной машине;
``$REMOTE_HOST'' определяет адрес удаленной машины;
``-R $TUNNEL_PORT:$LOCAL_HOST:$LOCAL_PORT'' несет в себе информацию о том, между какими портами будет установлено соединение.

Подразумевается, что переменная $TUNNEL_PORT содержит номер порта на удаленной машине, подключения к которому будут перенаправляться на адрес $LOCAL_HOST:$LOCAL_PORT. Например, если нужно организовать подключения к SSH на локальной машине, к которому нет доступа из интернет, можно набрать примерно следующую команду:

ssh -R 12345:localhost:22 myhost.dyndns.org -u mylogin -p 2222 -N

После этого, работая на машине myhost.dyndns.org, можно будет подключаться на ее порт 12345:

ssh localhost -u myremotelogin -p 12345

Кроме того, будет возможность открытия нескольких соединений.

Profile

Anton Salikhmetov

November 2018

S M T W T F S
    123
45678 910
11121314151617
18192021222324
252627282930 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 13th, 2025 08:36 am
Powered by Dreamwidth Studios