Обновите 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
. Он не зависит от операционной системы!
Адрес, указанный в -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
используется для туннельного соединения на обоих концах.
Насколько я понимаю, я думаю, что то, что вы ищете, было получено на сайте StackExchange ServerFault: здесь .
Так как это больше касается сетей и инструментов администрирования сети / серверов, это может быть лучшим сайтом для того, чтобы задавать подобные вопросы в будущем.
Там конкретно говорится о настройке туннеля для SSH-соединения с хостом C от хоста A, но вы можете сделать это для любого TCP-соединения.
В их примере $ PROXYHOST
- это хост B, $ REMOTEHOST
- это хост C, а $ SSHPORT
- это любой порт, на который вы хотите отправлять соединения на хосте. C.