recherche

Maison  >  Questions et réponses  >  le corps du texte

python - Linux终端全局代理翻墙

我想通过设置HTTP_PROXY和HTTPS_PROXY方法实现代理,格式如下

$ export HTTP_PROXY="http[socks5]://user:pass@server_address:port/"
$ export HTTPS_PROXY="http[socks5]://user:pass@server_address:port/"

昨天我买了一台阿里云的服务器,经过SSH -D user@server然后通过Chrome下的proxy插件可以实现翻墙。现在我想让用设置环境变量的方式代理实现终端下也能访问Goole等网站的页面,请问我应该怎样在我的阿里云服务器上面配置呢?

附录:
自己在Python爬虫里面通过下面的方式利用Shadowsocks已经可以爬取墙外的网站了,现在主要想在终端下使用wget, youtube-dl等命令翻墙。

 proxy_handler = SocksiPyHandler(socks.SOCKS5, '127.0.0.1', 1080)
PHP中文网PHP中文网2802 Il y a quelques jours2090

répondre à tous(2)je répondrai

  • 高洛峰

    高洛峰2017-04-18 09:36:01

    Si vous souhaitez atteindre l'objectif de proxy global pour votre titre, vous pouvez lire la partie iptables de cet article

    https://linuxaria.com/article...

    J'ai extrait la iptables configuration comme suit :

    #!/bin/bash
    # Create new chain
    iptables -t nat -N REDSOCKS
     
    # Ignore LANs and some other reserved addresses.
    iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
    iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
    iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
    iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
    iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
    iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
    iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
    iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
     
    # Anything else should be redirected to port 31338
    iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 31338
     
    # Any tcp connection made by `linuxaria' should be redirected, put your username here.
    iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner linuxaria -j REDSOCKS
    

    Cette configuration transfère toutes les TCP connexions, à l'exception des connexions LAN locales, vers le port 31338. Vous devez évidemment utiliser un logiciel proxy pour surveiller ce port à l'avance. Bien sûr, il peut également s'agir de n'importe quel autre port d'écoute proxy désigné

    .

    PS : Le proxy global est en fait très peu pratique. Il est préférable d'appliquer le proxy séparément. Quant à ce que vous avez dit sur le fait de faire en sorte que wget ces commandes utilisent également le proxy, il suffit de export télécharger temporairement env avant de l'utiliser. ça

    Par exemple, mon proxy est sur 192.168.100.100, port 1080, je souhaite wget télécharger YouTube :

    $ export https_proxy=http://192.168.100.100:1080
    $ wget www.youtube.com
    --2016-09-06 13:00:28--  http://www.youtube.com/
    Connecting to 192.168.100.100:1080... connected.
    Proxy request sent, awaiting response... 301 Moved Permanently
    Location: https://www.youtube.com/ [following]
    --2016-09-06 13:00:32--  https://www.youtube.com/
    Connecting to 192.168.100.100:1080... connected.
    Proxy request sent, awaiting response... 200 OK
    Length: unspecified [text/html]
    Saving to: “index.html”
    
        [           <=>                                 ] 391,815      133K/s   in 2.9s    
    
    2016-09-06 13:00:36 (133 KB/s) - “index.html” saved [391815]

    Facile et agréable. Bien sûr, certaines applications peuvent ne pas prendre en charge le protocole Socks5. Recherchez simplement un tas de réponses sur "socks5 to http" que j'utilise habituellement privoxy

    .

    répondre
    0
  • PHPz

    PHPz2017-04-18 09:36:01

    Concernant le proxy, nous recommandons deux outils, proxychains et privoxy Comme wget et youtube-dl, vous pouvez spécifier le proxy dans les paramètres, donc si vous avez un serveur ss, configurez simplement le proxy ss localement. Je pense qu'il est préférable d'utiliser des proxys pour les applications plutôt que de créer des proxys globaux au niveau du système.

    répondre
    0
  • Annulerrépondre