Как выполнить переадресацию портов между localhost и localhost на двух машинах?

Обновите youtube-dl, добавив этот PPA:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install youtube-dl

После этого вы можете загрузить любое видео, как обычно. Например:

youtube-dl https://www.youtube.com/watch?v=Ix1rD4JD3eo

Примечание: Его все еще можно загрузить, используя pip. Он не зависит от операционной системы!

0
29.08.2015, 17:13
2 ответа

Адрес, указанный в -L , используется удаленный хост (B). Поэтому неудивительно, что у вас действительно есть туннель между A и B -L 5000: 127.0.0.1: 5000 . Когда вы подключаетесь к TCP-порту 5000 на A, соединение перенаправляется на 127.0.0.1:5000 на B.

С другой стороны -R 5001: 127.0.0.1: 5001 будет нормально, потому что адрес разрешается локальным хостом (A), а ваш пункт назначения - A. Когда вы подключаетесь к TCP-порту 5001 на B, соединение перенаправляется на 127.0.0.1:5001 на A.

Обратите внимание, что оба порта прослушивания -L / -R по умолчанию привязаны к localhost , поэтому они доступны только из A и B. соответственно. Если вы хотите разрешить другим хостам подключаться, добавьте часть bind_address в -L / -R . Достаточно простого добавления ведущего : :

ssh -L :5000:IP_of_C:5000 -R :5001:127.0.0.1:5001 IP_of_B

с этой настройкой A подключается к 127.0.0.1:5000 , а C подключается к IP_of_B: 5001 .

Если вы предпочитаете использовать 127.0.0.1 на обоих A и C, вам необходимо установить (виртуально) прямое SSH-соединение между A и C, что возможно с SSH через SSH-туннелирование с помощью ProxyCommand . Поместите следующее в ~ / .ssh / config :

Host C
ProxyCommand ssh -q -W IP_of_C:22 IP_of_B

Затем подключитесь к C из A с помощью 1-переходного ssh :

ssh -L 5000:127.0.0.1:5000 -R 5001:127.0.0.1:5001 C

На этот раз вам не нужно добавлять часть bind_address , потому что 127.0.0.1 используется для туннельного соединения на обоих концах.

4
28.01.2020, 02:20

Насколько я понимаю, я думаю, что то, что вы ищете, было получено на сайте StackExchange ServerFault: здесь .

Так как это больше касается сетей и инструментов администрирования сети / серверов, это может быть лучшим сайтом для того, чтобы задавать подобные вопросы в будущем.

Там конкретно говорится о настройке туннеля для SSH-соединения с хостом C от хоста A, но вы можете сделать это для любого TCP-соединения.

В их примере $ PROXYHOST - это хост B, $ REMOTEHOST - это хост C, а $ SSHPORT - это любой порт, на который вы хотите отправлять соединения на хосте. C.

0
28.01.2020, 02:20

Теги

Похожие вопросы