Как установить прокси для терминала?

36

Я ищу установить прокси для терминала. Что мне нужно, так это то, что я хочу отправить все терминальные сообщения в Интернет через прокси, скажем через tor.

Я попытался установить общесистемную настройку прокси. Но Терминал не подчиняется общесистемной конфигурации прокси.

Есть ли другой способ сделать это?

Анонимный утконос
источник
Ты имеешь ввиду ssh или telnet или ...? Пожалуйста, объясните нам "терминальная связь". Вы можете telnet к некоторому хосту через прокси или ftp их, но сообщение от minicom вы не можете отправить по сети ... кроме как файл журнала ....
2707974
1
Можно ли установить прокси для всех сетевых операций, выполняемых через терминал? Вместо установки прокси для wget, curl и других отдельно. Я ищу такое решение.
Анонимный Утконос
Да, но wget обычно работает на порте 80 или 443, ssh на порте 22, telnet на 23, ftp на 20 и 21 ... Вы можете использовать simpleproxy или tinyproxy
2707974
Как установить этот прокси для терминала? Я явно устанавливаю его для разных приложений, работающих на терминале, или я могу установить его в терминале так, чтобы все команды, которые я запускаю в терминале, проходили через этот прокси?
Анонимный утконос
Терминалу Ubuntu необходим http-прокси. Когда вы используете прокси-сервер SOCKS5, например shadowsocks, вы можете использовать его proxychainsдля соединения SOCKS5 с http-прокси. Проверьте github.com/shadowsocks/shadowsocks/wiki/...
hakunami

Ответы:

19

Терминал не является сетевым приложением. Может быть , лучше сказать, в вашем случае, терминал контейнер для чистых приложений , таких как ssh, telnet, lftp, wget, lynx...

Отредактируйте ваш:

sudo -H gedit /etc/profile.d/proxy.sh

Введите детали в этом формате.

export http_proxy=http://username:password@proxyhost:port/ 
export ftp_proxy=http://username:password@proxyhost:port/
export telnet_proxy=http://username:password@proxyhost:port/

Это для при использовании wget, ftp, lftp, telnetв терминале

sshне имеет встроенной SOCKSклиентской поддержки, вам нужно использовать ProxyCommandдля этого, например, с socat:

ssh -o ProxyCommand='socat - SOCKS4A:myproxy:%h:%p,socksuser=nobody' user@host

Или использовать такие вещи, как tsocksпрозрачно использовать SOCKSдля TCPтрафика.

Для SOCKS5с Socat 2:

ssh -o ProxyCommand='socat - "SOCKS5:%h:%p|tcp:myproxy:1080"' user@host

Для метода HTTP Proxy CONNECT с socat 2:

ssh -o ProxyCommand='socat - "PROXY:%h:%p|tcp:myproxy:80"' user@host
2707974
источник
1
Стоит отметить, что файл proxy.sh должен быть исполняемым.
Алиреза
41

экспортируйте следующие переменные в терминал

export http_proxy='http://proxyServerSddress:proxyPort'    
export https_proxy='https://proxyServerSddress:proxyPort'

и используйте следующие команды для отключения прокси

unset http_proxy
unset https_proxy
PKumar
источник
+1 за неустановленную инструкцию :)
РезаШ
0

Я устанавливаю переменные экспорта

export http_proxy=http://username:password@proxyhost:port/ 
export https_proxy=https://username:password@proxyhost:port/
export ftp_proxy=http://username:password@proxyhost:port/

в ~ / .bashrc и / etc / enviroment

Француз
источник
0

В моем случае я либо пропустил кавычки с обеих сторон. ставить "http//.."было неправильно и не ставить ничего такого, что http//...было неправильно. То, что сработало, было ... когда я использовал одинарные кавычки с обеих сторон.

export http_proxy='http://username:password@proxyhost:port/' export https_proxy='https://username:password@proxyhost:port/' export ftp_proxy='http://username:password@proxyhost:port/'

Помните, что эти три - 3 команды, которые должны запускаться отдельно три раза.

surendrapanday
источник