Wie stelle ich einen Proxy für das Terminal ein?

36

Ich möchte einen Proxy für das Terminal einrichten. Was ich brauche, ist, dass ich die gesamte Terminalkommunikation über einen Proxy an das Internet senden möchte, sagen wir tor.

Ich habe versucht, einen systemweiten Proxy einzurichten. Das Terminal befolgt jedoch nicht die systemweite Proxy-Konfiguration.

Gibt es eine andere Möglichkeit, dies zu tun?

Anonymes Schnabeltier
quelle
Du meinst ssh oder telnet oder ...? Bitte erläutern Sie uns "Terminalkommunikation". Sie können mit einigen Hosts über Proxy oder FTP telneten, aber die Kommunikation von Minicom kann nicht über das Netz gesendet werden ... außer wie bei einer Protokolldatei ....
2707974 10.02.15
1
Ist es möglich, einen Proxy für alle Netzwerkaktivitäten festzulegen, die über das Terminal ausgeführt werden? Anstatt Proxy für wget, curl und andere separat einzustellen. Ich suche eine solche Lösung.
Anonymous Platypus
Ja, aber normalerweise funktioniert es auf Port 80 oder 443, ssh auf Port 22, telnet auf 23, ftp auf 20 und 21 ... Sie können simpleproxy oder tinyproxy verwenden
2707974
Wie stelle ich diesen Proxy für das Terminal ein? Muss ich es explizit für verschiedene Apps einstellen, die auf dem Terminal ausgeführt werden, oder kann ich es so einstellen, dass alle Befehle, die ich auf dem Terminal ausführe, diesen Proxy durchlaufen?
Anonymes Schnabeltier
Das Ubuntu-Terminal benötigt einen http-Proxy. Wenn Sie einen SOCKS5-Proxy verwenden, können Sie SOCKS5 wie proxychainsShadowsocks mit einem http-Proxy verbinden. Überprüfen Sie diese github.com/shadowsocks/shadowsocks/wiki/…
Hakunami

Antworten:

18

Terminal ist keine Netzanwendung. Vielleicht besser ist in Ihrem Fall zu sagen, Terminal Container für Netto-Anwendung wie ssh, telnet, lftp, wget, lynx...

Bearbeiten Sie Ihre:

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

Geben Sie die Details in diesem Format ein.

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

Dies ist für die bei der Verwendung von wget, ftp, lftp, telnetim Terminal

sshWenn Sie keinen nativen SOCKSClient-Support haben, müssen Sie dafür a verwenden ProxyCommand, zum Beispiel mit socat:

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

Oder nutzen Sie Dinge, die Sie gerne tsockstransparent SOCKSfür den TCPVerkehr nutzen.

Für SOCKS5mit socat 2:

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

Für die HTTP-Proxy-CONNECT-Methode mit socat 2:

ssh -o ProxyCommand='socat - "PROXY:%h:%p|tcp:myproxy:80"' user@host
2707974
quelle
1
Erwähnenswert ist, dass die Datei proxy.sh ausführbar gemacht werden sollte.
Alireza
40

Exportieren Sie die folgenden Variablen in Terminal

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

Verwenden Sie die folgenden Befehle, um den Proxy zu deaktivieren

unset http_proxy
unset https_proxy
PKumar
quelle
+1 für nicht
gesetzte
0

Ich setze Exportvariablen

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

in ~ / .bashrc und / etc / enviroment

Francuz
quelle
0

In meinem Fall fehlte entweder ein Anführungszeichen auf beiden Seiten. Putten "http//.."war falsch und nicht, was auch http//...falsch war. Was funktionierte, war ... wenn ich auf beiden Seiten einzelne Anführungszeichen verwendete.

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

Denken Sie daran, dass diese drei drei Befehle dreimal separat ausgeführt werden müssen.

surendrapanday
quelle