Это зависит от того, что вы пытаетесь переслать через SSH. Ака, что вы пытаетесь сделать.
-L lport:host:hport
делает так, что если вы подключаетесь к lport
на вашем начальном хосте, вы подключаетесь к hport
на хосте.
Так скажи, что ты на hostA
. и вы хотите получить доступ к http (порт 80) на hostD
который недоступен, кроме hostC
который доступен только для hostB
и который доступен для вашего начального hostA
.
Вы можете запустить (из hostA
):
ssh -L 8080: локальный хост: 8081 hostB
затем на этом hostB
запустите:
ssh -L 8081: локальный хост: 8082 hostC
затем на этом hostC
запустите:
ssh -L 8082:localhost:80 hostD
Затем вы можете (на hostA
) получить доступ к localhost:8080
и подключиться к порту 80 hostD
.
Примечание: вы можете использовать один и тот же 8080 на всех, так как этот порт используется только один раз для каждой машины. Я просто увеличил номера портов каждого соединения, чтобы лучше показать корреляции между портами.
Еще одна вещь, которую нужно иметь в виду, это то, что хост (между двумя: s) находится в контексте машины, на которую вы работаете. поэтому, если hostC
имеет прямой доступ к порту 80 hostD
, вы могли бы вместо этого сделать следующее:
Вы можете запустить (из hostA
):
ssh -L 8080: локальный хост: 8081 hostB
затем на этом hostB
запустите:
ssh -L 8081:hostD:80 hostC