Comment définir un proxy pour le terminal?

36

Je cherche à définir un proxy pour le terminal. Ce dont j'ai besoin, c'est que je souhaite envoyer toutes les communications du terminal à Internet via un proxy, par exemple tor.

J'ai essayé de configurer un proxy à l'échelle du système. Mais Terminal n'obéit pas à la configuration du proxy à l'échelle du système.

Y a-t-un autre moyen de faire ça?

Ornithorynque anonyme
la source
Vous voulez dire ssh ou telnet ou ...? Veuillez nous expliquer "communications terminales". Vous pouvez telnet à un hôte via proxy ou ftp, mais la communication de minicom vous ne pouvez pas envoyer via net ... sauf comme fichier journal ....
2707974
1
Est-il possible de définir un proxy pour toutes les activités liées au réseau effectuées sur le terminal? Au lieu de définir un proxy pour wget, curl et autres séparément. Je recherche une telle solution.
Ornithorynque anonyme
Oui, mais wget fonctionne généralement sur le port 80 ou 443, ssh sur le port 22, telnet sur 23, ftp sur 20 et 21 ... Vous pouvez utiliser simpleproxy ou tinyproxy
2707974
Comment définir ce proxy pour le terminal? Dois-je le définir explicitement pour différentes applications exécutées sur le terminal ou puis-je le définir dans le terminal de telle sorte que toutes les commandes que j'exécute dans le terminal passent par ce proxy?
Ornithorynque anonyme
Le terminal ubuntu a besoin d'un proxy http, lorsque vous utilisez le proxy SOCKS5, comme les ombres, vous pouvez utiliser proxychainspour relier SOCKS5 au proxy http. Consultez ce github.com/shadowsocks/shadowsocks/wiki/…
hakunami

Réponses:

19

Le terminal n'est pas une application nette. Peut - être vaut mieux dire, dans votre cas, le terminal est conteneur pour une application nette comme ssh, telnet, lftp, wget, lynx...

Modifiez votre:

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

Entrez les détails dans ce format.

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

C'est pour lors de l'utilisation wget , ftp, lftp, telnetdans le terminal

ssh n'a pas de natif SOCKS support client , vous devez utiliser un ProxyCommandpour cela, par exemple avec socat:

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

Ou utilisez des choses comme tsocksà utiliser de manière transparente SOCKSpour le TCPtrafic.

Pour SOCKS5 avec socat 2:

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

Pour la méthode HTTP Proxy CONNECT avec socat 2:

ssh -o ProxyCommand='socat - "PROXY:%h:%p|tcp:myproxy:80"' user@host
2707974
la source
1
Il convient de mentionner que le fichier proxy.sh doit être rendu exécutable.
Alireza
41

exporter les variables ci-dessous dans le terminal

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

et utilisez les commandes suivantes pour désactiver le proxy

unset http_proxy
unset https_proxy
PKumar
la source
+1 pour l'instruction non
définie
0

Je mets des variables d'exportation

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

dans ~ / .bashrc et / etc / enviroment

Francuz
la source
0

Dans mon cas, il me manquait soit une virgule inversée enfermée des deux côtés. mettre "http//.."était mal et ne pas mettre quoi que ce http//...soit de mal aussi. Ce qui a fonctionné était ... quand j'ai utilisé des virgules inversées simples des deux côtés.

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

N'oubliez pas que ces trois commandes sont à exécuter séparément trois fois.

surendrapanday
la source