Ubuntu 全局 proxy 设置的方法

2016-03-07 17:05:26 +08:00
 pinkman

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

56605 次点击
所在节点    Ubuntu
16 条回复
v2kid
2016-03-07 17:21:00 +08:00
726332269
2016-03-07 17:23:33 +08:00
iptables,redsocks2 ,用这两个关键字搜索
hyq
2016-03-07 17:26:10 +08:00
export http_proxy=http://xxxxx
export https_proxy=http://xxxxx
应该是小写的起作用。
对于不支持环境变量控制代理的。可以用 tsocks (这个需要 socks5 代理)
hyq
2016-03-07 17:27:14 +08:00
还有一个更简单的办法,把虚拟机网络改成 nat ,然后在 windows 上用 proxifier ,将整个 vmware 通过代理走
Orzzzz
2016-03-07 17:34:09 +08:00
试一下`tsocks` :
````
tsocks nvm install 4.2
````
v1024
2016-03-07 17:48:03 +08:00
你这设置非常不全面,待我回头把 evernote 翻出来贴这儿..
pengfei
2016-03-07 18:03:54 +08:00
@v1024 赶紧的亲 准备今晚下班以后的时间都耗你身上了
esxivistawrt
2016-03-07 18:41:46 +08:00
使用 ip-check.info 可以检验,没有全局的代理,总有绕过代理的。
v1024
2016-03-07 18:54:27 +08:00
@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
2016-03-07 23:06:19 +08:00
可以使用 ProxyChains ,比如将 SS 代理 127.0.0.1:1080 添加到 ProxyChains 的配置文件之后。
此后参照如下方式就可以使用代理了
proxychains sudo npm install -g npm
cnleoyang
2016-03-08 13:37:02 +08:00
proxychains 貌似更方便
Neveroldmilk
2016-03-08 13:57:56 +08:00
赞 10L 的方法。
pinkman
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
2016-03-08 22:16:43 +08:00
@pinkman 我用的版本是 proxychains-ng 4.11 ,配置文件为 /usr/local/etc/proxychains.conf
只是将默认代理注释掉,然后添加 SS 的地址端口号就可以了
例如: socks5 127.0.0.1 1080
建议检查一下版本,我这边提示 proxychains4 ,我是在 github 下载 clone 下来,本地编译安装的。
linxu
2018-12-21 10:15:32 +08:00
对于 golang 的一些包,proxychains-ng 也不好用。我用 cow 来代理,然后就可以了。
wangxiaoaer
2021-03-09 09:17:46 +08:00
@linxu #15 所以这个问题解决了吗?有没有一劳永逸的办法?本想用 proxychains 的,结果楼上兄弟发现了例外…………

Linux 走个全局代理就这么难?我也是搜索才找到这个帖子的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/261723

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX