V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pinkman
V2EX  ›  Ubuntu

Ubuntu 全局 proxy 设置的方法

  •  
  •   pinkman · 2016-03-07 17:05:26 +08:00 · 56359 次点击
    这是一个创建于 2970 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司需要用代理才能上网,我在 vmware player 上面装了个 ubuntu 14.04 LTS 桌面版,一切都好,但代理问题把我弄疯了,我做了如下尝试:

    • 在设置中的 network 添加了 manual proxy ,并且点击了 apply system wide
      • sudo apt-get update 可以了,网页浏览可以了
      • curl 不行,加了--proxy 后可以了
      • git 也不行, git 用 config --global http.proxy 搞定了
      • nvm 还是不行, nvm 也没有--proxy 的参数
    • 在 bashrc 里面加入了 EXPORT HTTP_PROXY=http://proxy.company.org:8080 后 source .bashrc
      • 这对 nvm install 4.2 也没有用。
    • 又搜索了个全局代理设置的 bash 脚本
      • nvm install 4.2 还是不行
    16 条回复    2021-03-09 09:17:46 +08:00
    v2kid
        1
    v2kid  
       2016-03-07 17:21:00 +08:00   ❤️ 2
    726332269
        2
    726332269  
       2016-03-07 17:23:33 +08:00 via Android   ❤️ 1
    iptables,redsocks2 ,用这两个关键字搜索
    hyq
        3
    hyq  
       2016-03-07 17:26:10 +08:00   ❤️ 1
    export http_proxy=http://xxxxx
    export https_proxy=http://xxxxx
    应该是小写的起作用。
    对于不支持环境变量控制代理的。可以用 tsocks (这个需要 socks5 代理)
    hyq
        4
    hyq  
       2016-03-07 17:27:14 +08:00   ❤️ 2
    还有一个更简单的办法,把虚拟机网络改成 nat ,然后在 windows 上用 proxifier ,将整个 vmware 通过代理走
    Orzzzz
        5
    Orzzzz  
       2016-03-07 17:34:09 +08:00   ❤️ 1
    试一下`tsocks` :
    ````
    tsocks nvm install 4.2
    ````
    v1024
        6
    v1024  
       2016-03-07 17:48:03 +08:00 via iPhone   ❤️ 1
    你这设置非常不全面,待我回头把 evernote 翻出来贴这儿..
    pengfei
        7
    pengfei  
       2016-03-07 18:03:54 +08:00
    @v1024 赶紧的亲 准备今晚下班以后的时间都耗你身上了
    esxivistawrt
        8
    esxivistawrt  
       2016-03-07 18:41:46 +08:00
    使用 ip-check.info 可以检验,没有全局的代理,总有绕过代理的。
    v1024
        9
    v1024  
       2016-03-07 18:54:27 +08:00   ❤️ 6
    @pinkman @pengfei


    1. 全局环境变量
    $ sudo vi /etc/environment
    加入:
    http_proxy=http://myproxy.server.com:8080/
    https_proxy=http://myproxy.server.com:8080/
    ftp_proxy=http://myproxy.server.com:8080/
    no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
    HTTP_PROXY=http://myproxy.server.com:8080/
    HTTPS_PROXY=http://myproxy.server.com:8080/
    FTP_PROXY=http://myproxy.server.com:8080/
    NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"

    2. gtk3 应用代理
    gsettings set org.gnome.system.proxy mode 'manual'
    gsettings set org.gnome.system.proxy.http host 'myproxy.server.com'
    gsettings set org.gnome.system.proxy.http port 8080

    3. apt-get 代理
    $ sudo vi /etc/apt/apt.conf.d/95proxies
    新增文件内容:
    Acquire::http::proxy "http://myproxy.server.com:8080/";
    Acquire::ftp::proxy "ftp://myproxy.server.com:8080/";
    Acquire::https::proxy "https://myproxy.server.com:8080/";

    4. git 代理

    4.1 http 及 https
    git config --global http.proxy http://myproxy.server.com:8080
    git config --global https.proxy https://myproxy.server.com:8080

    4.2 git://协议代理
    $ sudo apt-get install socat
    $ sudo vi /usr/bin/gitproxy
    --------------------------
    #!/bin/bash

    PROXY=myproxy.server.com
    PROXYPORT=8080
    PROXYAUTH=username:password
    exec socat STDIO PROXY:$PROXY:$1:$2,proxyport=$PROXYPORT,proxyauth=$PROXYAUTH
    --------------------------
    $ sudo chmod +x /usr/bin/gitproxy
    $ git config --global core.gitproxy gitproxy
    steelz
        10
    steelz  
       2016-03-07 23:06:19 +08:00   ❤️ 1
    可以使用 ProxyChains ,比如将 SS 代理 127.0.0.1:1080 添加到 ProxyChains 的配置文件之后。
    此后参照如下方式就可以使用代理了
    proxychains sudo npm install -g npm
    cnleoyang
        11
    cnleoyang  
       2016-03-08 13:37:02 +08:00
    proxychains 貌似更方便
    Neveroldmilk
        12
    Neveroldmilk  
       2016-03-08 13:57:56 +08:00
    赞 10L 的方法。
    pinkman
        13
    pinkman  
    OP
       2016-03-08 15:59:26 +08:00
    @steelz 请问我需要改 `/usr/lib/proxychains3/proxyresolv`文件中的 dns server 信息吗?

    目前默认的是:
    DNS_SERVER=${PROXYRESOLV_DNS:-4.2.2.2}

    proxychains firefox 后出现:
    |DNS-request| proxy.mycompany.corp
    |DNS-response|: proxy.mycompany.corp does not exist
    steelz
        14
    steelz  
       2016-03-08 22:16:43 +08:00   ❤️ 1
    @pinkman 我用的版本是 proxychains-ng 4.11 ,配置文件为 /usr/local/etc/proxychains.conf
    只是将默认代理注释掉,然后添加 SS 的地址端口号就可以了
    例如: socks5 127.0.0.1 1080
    建议检查一下版本,我这边提示 proxychains4 ,我是在 github 下载 clone 下来,本地编译安装的。
    linxu
        15
    linxu  
       2018-12-21 10:15:32 +08:00
    对于 golang 的一些包,proxychains-ng 也不好用。我用 cow 来代理,然后就可以了。
    wangxiaoaer
        16
    wangxiaoaer  
       2021-03-09 09:17:46 +08:00
    @linxu #15 所以这个问题解决了吗?有没有一劳永逸的办法?本想用 proxychains 的,结果楼上兄弟发现了例外…………

    Linux 走个全局代理就这么难?我也是搜索才找到这个帖子的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5404 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:22 · PVG 15:22 · LAX 00:22 · JFK 03:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.