Jak ustawić proxy dla terminala?


36

Chcę ustawić serwer proxy dla terminala. Potrzebuję wysłać całą komunikację terminalową do Internetu za pośrednictwem serwera proxy, powiedzmy tor.

Próbowałem skonfigurować serwer proxy dla całego systemu. Ale Terminal nie przestrzega konfiguracji całego serwera proxy.

Czy jest na to inny sposób?


Masz na myśli ssh, telnet lub ...? Wyjaśnij nam „komunikację terminalową”. Możesz telnet do jakiegoś hosta za pośrednictwem proxy lub ftp, ale komunikacji z minicom nie możesz wysłać przez sieć ... z wyjątkiem pliku dziennika ....
2707974

1
Czy można ustawić serwer proxy dla wszystkich działań związanych z siecią wykonywanych przez terminal? Zamiast ustawiać proxy dla wget, curl i innych osobno. Szukam takiego rozwiązania.
Anonimowy Dziobak

Tak, ale wget zwykle działa na porcie 80 lub 443, ssh na porcie 22, telnet na 23, ftp na 20 i 21 ... Możesz użyć simpleproxy lub tinyproxy
2707974

Jak ustawić ten serwer proxy dla terminala? Czy jawnie ustawiam go dla różnych aplikacji działających na terminalu, czy mogę ustawić go w terminalu w taki sposób, aby wszystkie polecenia uruchamiane w terminalu przechodziły przez ten serwer proxy?
Anonimowy Dziobak

Terminal ubuntu potrzebuje proxy HTTP, gdy używasz proxy SOCKS5, podobnie jak shadowsocks, możesz użyć proxychainsdo połączenia SOCKS5 z proxy HTTP. Sprawdź to github.com/shadowsocks/shadowsocks/wiki/…
hakunami

Odpowiedzi:


18

Terminal nie jest aplikacją sieciową. Może lepiej jest powiedzieć, w danym przypadku, terminal jest pojemnik do stosowania netto jak ssh, telnet, lftp, wget, lynx...

Edytuj swój:

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

Wprowadź szczegóły w tym formacie.

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

Jest to w przypadku korzystania wget, ftp, lftp, telnetw terminalu

sshnie ma SOCKSobsługi klienta natywnego , do tego należy użyć ProxyCommand, na przykład socat:

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

Lub użyj rzeczy, takich jak tsocksprzezroczyste użycie SOCKSdla TCPruchu.

W SOCKS5przypadku socat 2:

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

Dla metody HTTP Proxy CONNECT z socat 2:

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

1
Warto wspomnieć, że plik proxy.sh powinien być wykonywalny.
Alireza

40

eksportuj poniższe zmienne do terminala

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

i użyj następujących poleceń, aby wyłączyć serwer proxy

unset http_proxy
unset https_proxy

+1 za instrukcje nieustawione :)
RezaSh

0

Ustawiam zmienne eksportu

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

w ~ / .bashrc i / etc / enviroment


0

W moim przypadku po obu stronach brakowało albo odwróconego przecinka. stawianie "http//.."było złe i nie stawianie niczego, co też http//...było złe. To, co zadziałało, to… kiedy użyłem pojedynczych odwróconych przecinków po obu stronach.

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

Pamiętaj, że te trzy to 3 polecenia, które należy uruchamiać osobno trzy razy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.