Как использовать socks proxy для команд в Терминале, таких как youtube-dl?

38

Я подключаюсь к удаленному серверу ssh, выполнив следующую команду:

ssh -D 12345 bob@myserver.com

Это создает прокси-сервер, который я могу использовать с Firefox, чтобы обойти цензуру в моей стране. Однако я не могу воспользоваться этим в командной строке.

Допустим, моя страна блокирует доступ к YouTube. Как я могу использовать соединение ssh для запуска такой команды:

youtube-dl "youtube.com/watch?v=3XjwiV-6_CA"

Не будучи заблокированным правительством? Как я могу установить прокси socks для всех команд терминала?

user1098135
источник
1
Я нашел временное решение. Я использовал цоки. После установки, когда соединение ssh установлено, я запускаю нужное приложение с помощью tsocks следующим образом: tsocks gnome-terminal
user1098135
1
tsocks youtube-dl ...- tsocks - это умное приложение, обычно доступное в репозиториях, которое использует LD_PRELOADдля принудительной маршрутизации своего трафика приложениями через назначенное соединение SOCKS (укажите, какое именно ~/.tsocks.conf).
Заз

Ответы:

17

Youtube-dl не поддерживает прокси SOCKS. Для этого есть особый запрос со ссылками на пару рабочих предложений.

Youtube-dl поддерживает HTTP прокси из коробки. Чтобы воспользоваться этой поддержкой, вам нужно запустить прокси myserver.com. Практически любой легкий прокси подойдет, например tinyproxy . Прокси нужно только слушать локальные соединения ( Listen 127.0.0.1в tinyproxy.conf). Если прокси-сервер HTTP прослушивает порт 8035 ( Port 8035), выполните следующую команду ssh:

ssh -L 8035:localhost:8035 bob@myserver.com

и установите переменные среды http_proxyи https_proxy:

export http_proxy=http://localhost:8035/ https_proxy=http://localhost:8035/
youtube-dl youtube.com/watch?V=3XjwiV-6_CA
Жиль "ТАК - прекрати быть злым"
источник
если они собираются использовать SSH, зачем им крошечный прокси или наоборот? Я использую SSH туннель, и он отлично работает.
Умайр А.
@Neutralizer SSH передает только с локального компьютера на прокси-сервер. Что-то на прокси-машине должно декодировать HTTP-запрос и определить IP-адрес сервера. Если клиент поддерживает SOCKS, тогда SSH может выполнить эту работу, но youtube-dl не поддерживает SOCKS. Если вы используете прокси-сервер для определенного сервера, вы можете использовать только SSH и указать ему переадресацию непосредственно на этот сервер, но это работает только в том случае, если все запросы необходимо перенаправить на один и тот же IP-адрес и порт.
Жиль "ТАК - перестань быть злым"
Для отладки хорошо запустить команду ssh -vи пропустить интерактивный сеанс, который также можно добавить -N.
фиковник
49
ssh -D 8080 name@myserver.com
export http_proxy=socks5://127.0.0.1:8080 https_proxy=socks5://127.0.0.1:8080
youtube-dl "youtube.com/watch?V=3XjwiV-6_CA"
amidevous
источник
просто и работает для меня.
Кевин Тонг
5
добавить, -Nчтобы пропустить интерактивную сессию SSH
Fikovnik
5

youtube-dl хорошо работает с прокси-цепями на Ubuntu. Убедитесь, что вы туннелируете через командную строку.

ssh -D 8081 ubuntu@yourSSHserver

Следующая установка прокси-цепей на вашем локальном хосте, а не на ssh-сервере

sudo apt-get install proxychains

отредактируйте ваш файл конфигурации прокси

sudo nano /etc/proxychains.conf

изменить номер порта в последней строке

socks4  127.0.0.1 8081

Примечание: я использую прокси-цепочки на порту 8081

затем просто добавьте прокси-цепочки в начало команды при использовании youtube-dl

proxychains ./youtube-dl http://thesite.com/yourvideo.hmtl 
Саид АльФаласи
источник
proxychains - классный инструмент
2 8
2

Вы можете использовать делегат ,

Это SOCKS-сервер и / или клиент, который может прослушивать HTTP-прокси.

Загрузите последнюю версию делегата и распакуйте ее.

Сначала запустите команду ssh:

ssh -D 9150 me@myserver.com

Затем запустите двоичный файл делегата с этими параметрами, чтобы HTTP-прокси был клиентом SOCKS:

$ ./dg9_9_13 -P8080 SERVER=http SOCKS=127.0.0.1:9150 ADMIN="local@localhost.com"

Затем запустите youtube-dlс --proxyвозможностью подключения к прослушиваемому HTTP-прокси:

$ youtube-dl -v --proxy "http://127.0.0.1:8080" https://www.youtube.com/watch?v=VID
Омид Раха
источник
1

Начиная с youtube-dlверсии 2016.05.10 , вы можете использовать --proxyдля указания прокси SOCKS, например,

youtube-dl --proxy "socks5://127.0.0.1/" -v 9bZkp7q19f0

--proxy URLИспользуйте указанный HTTP / HTTPS / SOCKS прокси. Чтобы включить экспериментальный SOCKS-прокси, укажите правильную схему. Например socks5://127.0.0.1:1080/.

kenorb
источник
0

Если вы ищете видео с YouTube, вы можете попробовать cclive, который поддерживает прокси. И это может делать другие потоковые сайты.

peterph
источник