Если на хост-машине также запущено программное обеспечение сервера SSH и он доступен из Интернета, вы можете использовать команду ssh -L 22065:127.0.0.1:22 user@192.168.122.65
. Опция -L
используется следующим образом:
-L [bind_address:]port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side. This
works by allocating a socket to listen to port on the local side,
optionally bound to the specified bind_address. Whenever a con‐
nection is made to this port, the connection is forwarded over
the secure channel, and a connection is made to host port
hostport from the remote machine. Port forwardings can also be
specified in the configuration file. IPv6 addresses can be spec‐
ified by enclosing the address in square brackets. Only the
superuser can forward privileged ports. By default, the local
port is bound in accordance with the GatewayPorts setting. How‐
ever, an explicit bind_address may be used to bind the connection
to a specific address. 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.
Допустим, IP-адрес хоста - 10.0.0.5. Из системы в Интернете вы можете установить соединение с портом 22065 на хосте с помощью команды ssh -p 22065 user@10.0.0.5
. Примечание: вам нужно предоставить действительный идентификатор пользователя и пароль для гостевой системы, даже если вы используете публичный IP-адрес хоста (я использую адрес из диапазона частных IP-адресов 10.xxx только для целей примера), так как соединение будет фактически туннелировано к гостю.
Когда соединение с портом 22065 на хосте установлено, оно пересылается через туннель SSH, установленный вашим первым SSH-соединением от хоста к гостевой системе в 192.168.122.65. Что касается клиента SSH в Интернете, он направляется непосредственно к гостевой системе через порт 22065, хотя на самом деле он подключается к порту 22 этой системы через туннель SSH с хоста 10.0.0.5. Примечание: чтобы это работало, соединение SSH от хоста к гостевой системе должно быть установлено в данный момент.
Там, где я разместил 127.0.0.1
вы могли бы также поместить 192.168.122.65
, но, поскольку соединение осуществляется с адресом localhost , т. Е. С самим гостем, а не с какой-либо внешней системой, я бы использовал 127.0.0.1
Для необходимых правил брандмауэра необходимо иметь правило на хосте и любых брандмауэрах между ним и Интернетом, которые разрешают входящие TCP-подключения к порту 22065 или любому другому выбранному вами порту. Вам не понадобятся дополнительные правила брандмауэра в гостевой системе.