方法挺多……

Web 浏览器(例如 Firefox 和 Chromium)

Firefox 可以在设置中自行设置 (参见 https://support.mozilla.org/en-US/kb/connection-settings-firefox )。

Chromium 默认会用系统的代理设置,不过可以用一个命令行选项强行在这次会话中使用代理,例如:

chromium --proxy-server="socks5://127.0.0.1:1080" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"

不过也可以用个代理扩展,例如 SwitchyOmega

GNOME 3

可以从设置-网络-网络代理中设置:

GNOME 3 的代理设置

某些其它应用(是哪些 😂)

(例如 wget 和 curl),会使用形如 "proto_proxy" 的环境变量用来设置代理啦 (当然也有可能是全部大写的),例如:

# export var=value
export http_proxy=http://10.203.0.1:5187/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

就设置成了 10.203.0.1:5187 作为 HTTP 代理,HTTPS、FTP 和 rsync 使用相同的代理。

于是可以把这样的语句写进一个脚本里在需要使用代理的时候 source 一下 😂

不过这样设置的环境变量一切换用户(例如 sudo)以后就没啦…… sudo 的话,可以用 -E 选项保持 环境变量,或者修改 /etc/sudoers 指定保持哪些环境变量:

Defaults env_keep += "http_proxy https_proxy ftp_proxy no_proxy"

socks5 代理

curl 和 pacman 可以设置 all_proxy 变量直接使用:

export all_proxy="socks5://your.proxy:1080"

那剩下的怎么办 😂

用 proxychains 让应用使用 socks5 代理

字如其名就是个链式代理工具啦 😂 Arch Linux 的话装上 proxychains-ng 就 OK 啦~

然后去修改 /etc/proxychains.conf ,选项有很多, 但是大多数时候只需要把最后一行换成汝自己的 socks5 代理的 IP 地址和端口就行😂

然后就可以像平常(?)一样:

proxychains -q /path/to/program

有关 proxychains 的更多用法可以去参考它的文档: http://proxychains.sourceforge.net/

用 privoxy 把 socks5 代理转化成 http 代理

Privoxy是一款不进行网页缓存且自带过滤功能的代理服务器,针对HTTP、HTTPS协议。 通过其过滤功能,用户可以保护隐私、对网页内容进行过滤、管理Cookie,以及拦阻各种广告等。 Privoxy可以单机使用,也可以应用到多用户的网络。 它也可以与其他代理相连(通常与Squid一起使用),更可以突破互联网审查。

https://zh.wikipedia.org/wiki/Privoxy

同样 Arch Linux 上装上 privoxy 就 OK 😂

然后去修改 /etc/privoxy/config ,选项还是有很多 😂, 但是大多数情况下只需要加上一行:

# forward-socks5   target_pattern  socks_proxy:port  http_proxy:port
# target_pattern 是 . 的话表示对所有域名适用
# http_proxy 是 . 的话表示继续不使用 HTTP 代理转发……
forward-socks5 . localhost:1080 .

然后启动 privoxy 服务,把 HTTP 代理设置成 localhost:8118 就好 😂

有关 Privoxy 的更多用法可以去参考它的文档: http://www.privoxy.org/user-manual/


keyboard_arrow_left 上一篇文章: 在 GNU/Linux 下制作 Windows 的安装 USB keyboard_arrow_right 下一篇文章: 把电脑上的 Shadowsocks 配置分享给手机使用的一点思路

想要表达对咱的支持的话,汝可以:

需要 JavaScript 支持来使用 Isso 😂