Linux: 代理
系统环境变量
curl | wget | Ruby | Python | Go | |
http_proxy (lowercase) | Yes | Yes | Yes | Yes | Yes |
HTTP_PROXY (Uppercase) | No | No | Yes (warning) | Yes (if REQUEST_METHOD not in env) | Yes |
https_proxy (lowercase) | Yes | Yes | Yes | Yes | Yes |
HTTPS_PROXY (Uppercase) | Yes | No | Yes | Yes | Yes |
no_proxy (lowercase) | Yes | Yes | Yes | Yes | Yes |
NO_PROXY (Uppercase) | Yes | No | Yes | Yes | Yes |
Case precedence | lowercase | lowercase only | lowercase | lowercase | Uppercase |
参考:https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/
windows
PROXY HTTP_PROXY HTTPS_PROXY ALL_PROXY NO_PROXY proxy http_proxy https_proxy all_proxy no_proxy
linux
大小写变量都可以
PROXY="http://127.0.0.1:1080" NO_PROXY="localhost,127.0.0.1,.company.com" export PROXY=$PROXY export HTTP_PROXY=$PROXY export HTTPS_PROXY=$PROXY export ALL_PROXY=$PROXY export NO_PROXY=$NO_PROXY export proxy=$PROXY export http_proxy=$PROXY export https_proxy=$PROXY export all_proxy=$PROXY export no_proxy=$NO_PROXY
如果某些地址不想要使用代理,可以配置在no_proxy变量上,用逗号分隔。
export no_proxy='a.test.com,127.0.0.1,2.2.2.2'
全都走代理
export all_proxy='http://127.0.0.1:1080'
有时候希望yum也使用代理,那么在/etc/yum.conf中加上:
proxy=http://127.0.0.1:1080
curl
参考:https://curl.se/docs/tutorial.html
方法1:命令行
curl --socks5 xxx.xxx.xxx.xxx:xxxx http://example.com/ 或者 curl -x "http_proxy://xxx.xxx.xxx.xxx:xxxx" http://example.com/ 或者 env https_proxy=http://non.existent/ no_proxy=.gitlab.com curl https://gitlab.com
方法2:配置文件
#windows %APPDATA%\_curlrc %USERPROFILE%\Application Data\_curlrc #linux ~/.curlrc #添加内容 https_proxy=http://127.0.0.1:1080 http_proxy=http://127.0.0.1:1080
Git 代理设置
准备工作
- 购买 VPS;
- 在服务器 VPS 上安装 v2ray server (请自行 Google);
- 在本机安装 v2ray client, 利用 v2ray client 开启 socks5 代理 (请自行 Google)。
配置 Git HTTP/HTTPS 代理
在 ~/.gitconfig 文件中加入以下配置:
[http] proxy = socks5://127.0.0.1:1080
注意, 上明配置等同于命令 git config –global http.proxy 'socks5://127.0.0.1:1080'
Git 不认 https.proxy, 设置 http.proxy 就可以支持 https 了。
配置 Git SSH 代理
在 ~/.ssh/config 文件中加入以下配置:
Host github.com HostName github.com User git Port 22 ProxyCommand /usr/bin/ncat --proxy 127.0.0.1:1080 --proxy-type socks5 %h %p
命令行
https_proxy=socks5://127.0.0.1:1080 git clone xxxx
把 github.com 加入 v2ray 代理路由
上面两个配置只是让 HTTPS/SSH 访问走本地 Socks5 代理, 但是并不能保证一定可以连接上 Github。
需要把 github.com 加入 v2ray 的路由中, 具体请看 v2ray 设置路由
最佳代理实践之 v2raya
机场 + v2raya + GFWList 的全局透明代理的效果最好, 透明代理配置好以后, 就不再需要 SwitchyOmega 和 proxy-ns 其他工具, 省心方便, 下面是具体的攻略:
购买机场
我主要用这个机场, 这个机场的好处是全平台支持, 非 Linux 平台都有专用客户端, 开箱即用很方便。
安装 v2raya
ArchLinux 用yay -S v2raya 命令一键安装 v2raya, 然后在浏览器打开 http://127.0.0.1:2017 进行如下配置:
- 订阅机场: 拷贝机场订阅 URL, 点击导入按钮导入
- 选择服务器: 选择 S.JISUSUB.CC 标签, 选择一个合适的服务器, 然后选择左上角启动按钮
- 更新 GFWList: 点击页面右上角设置按钮, 在设置对话框右上角点击更新按钮更新 GFWLIST, 然后再按照下面的步骤对设置页面进行配置
- 透明代理/系统代理: 启用: 分流规则与规则端口所选模式一致
- 透明代理/系统代理实现方式: redirect
- 规则端口的分流模式: RoutingA, 右边的规则配置见下面
- 防止 DNS 污染: DNS-over-HTTPS
- 特殊模式: supervisor
- TCPFastOpen: 关闭
- 多路复用: 关闭
- 自动更新 GFWList: 每个 1 小时自动更新
- 自动更新订阅: 每个 1 小时自动更新
- 解析订阅地址/更新时优先使用: 不进行分流
规则配置
default: proxy # 直连 domain(domain:qq.com, domain:163.com)->direct domain(geosite:cn)->direct ip(geoip:private)->direct ip(geoip:cn)->direct
- 默认走代理: default: proxy
- 微信网易云音乐走直连: domain(domain:qq.com, domain:163.com)->direct
- 大陆域名走直连: domain(geosite:cn)->direct
- 内网服务器走直连: ip(geoip:private)->direct
- 大陆 IP 走直连: ip(geoip:cn)->direct
这样设置不影响微信客户端启动, 比 GFWList 方便, 因为防火墙列表不一定全面, 很多新认证的网站范围上不了。
故障解决
failed to start v2ray-core: LocateServerRaw: ID or Sub exceed range
这个错误,删除 “/etc/v2raya” 目录下所有文件, 然后重启 v2raya sudo systemctl restart v2raya 后, 重新导入机场地址即可。
SS5 代理
centos7搭建SS5服务器
安装ss5
yum -y install gcc automake make pam-devel openldap-devel cyrus-sasl-devel openssl-devel #解压源码包 wget https://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz tar xvf ss5-3.8.9-8.tar.gz cd ss5-3.8.9 ./configure && make && make install
配置
修改身份验证方法
:CUSTOM_ID: 修改身份验证方法
/etc/opt/ss5/ss5.conf,取消
auth 0.0.0.0/0 - - permit - 0.0.0.0/0 - 0.0.0.0/0 - - - - -
这两行的注释,这时是不用验证的,如果要验证,则修改为
auth 0.0.0.0/0 - u permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -
添加用户名和密码`=/etc/opt/ss5/ss5.passwd=,每行一个用户一个密码。
username1 pwd1 username2 pwd2
修改代理端口 /etc/sysconfig/ss5
(如果没有设置,默认为1080)
SS5_OPTS=" -u root -b 0.0.0.0:1080"
向bash文件/etc/rc.d/init.d/ss5添加可执行权限
chmod +x /etc/init.d/ss5
日常使用
#在chkconfig工具服务列表中增加此服务,设置开机自启(可选) chkconfig --add ss5 chkconfig --level 345 ss5 on #手动启动 service ss5 start #查看监听端口1080 netstat -an | grep 1080 #默认端口1080,开防火墙 /usr/sbin/iptables -I INPUT -p tcp --dport 1080 -j ACCEPT #每次重启计算机后或者出现以下错误时: Can’t create pid file /var/run/ss5/ss5.pid Can’t unlink pid file /var/run/ss5/ss5.pid 需要先创建 /var/run/ss5 目录,然后再启动 ss5
浏览器使用
firefox安装插件foxproxy
chrome谷歌浏览器安装插件SwitchyOmega
规则文件:
https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
搬瓦工
俄罗斯主机商justhost.ru(戳这里:俄罗斯VPS:justhost
加利福尼亚的比较快
yum install epel-release yum update yum install git python-setuptools libsodium supervisor easy_install pip pip install shadowsocks [root@node01 ~]# cat /etc/shadowsocks.json { "server":"0.0.0.0", //监听IP "server_port":4434, //开放端口 "local_address": "127.0.0.1", "local_port":1080, "password":"Hd)$d&%c,?t@E", //客户验证密码 "timeout":300, //超时时间 "method":"aes-256-cfb", //加密格式 "fast_open": false, "works": 2 //进程数 } [root@virtualprotocolnetwork ~]#ssserver -c /etc/shadowsocks.json //检查并重读配置文件 [root@virtualprotocolnetwork ~]#ssserver -c /etc/shadowsocks.json -d start //后台启动 [root@virtualprotocolnetwork ~]#netstat -anput | grep 8388 //检查端口号
客户端支持多种操作系统:Windows,MACos,Linux,IOS等
1)下载一个
Shadowsocks软件客户端
输入:云主机IP、端口、加密规则、密码就可以使用了
2)然后要在阿里云打开一个安全组规则
入方向要开放所有地址段的所有端口
出方向要开放所有地址段的所有端口
然后就大功告成了
# 快速停止启动 [root@vpn-01 ~]# ssserver -d stop stopped [root@vpn-01 ~]# ssserver --user nobody -c /etc/shadowsocks.json -d start
官方命令行启动
server端
/usr/bin/python /usr/bin/ssserver -s ::0 -p 443 -k NWU2ZTQ0OT -m aes-256-cfb --user nobody --workers 2 -d start /usr/bin/python /usr/bin/ssserver -s ::0 -p 443 -k NWU2ZTQ0OT -m aes-256-cfb --user nobody --workers 2 -d start /usr/bin/python /usr/bin/ssserver -s ::0 -p 443 -k NWU2ZTQ0OT -m aes-256-cfb --user nobody --workers 2 -d start
客户端 ssr