在配置好系统代理(如V2、Burp等)后,有些软件(Docker)需要手动指定代理,有些软件难以配置代理(如VMware等),这时候就需要第三方软件来实现全局代理。
常用代理配置
终端terminal临时代理配置
执行export ALL_PROXY=socks5://127.0.0.1:1080
配置S5代理,执行unset ALL_PROXY
取消代理。
apt代理配置
apt通过添加参数-o Acquire::http::proxy="socks5h://127.0.0.1:1080"
实现Socks5代理。apt update
使用代理的命令如下。
apt -o Acquire::http::proxy="socks5h://127.0.0.1:1080" update
ssh代理配置
通过socks或http代理访问目标服务器
socks
借助nc
(ncat、netcat)实现
ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server
-X
:指定代理协议4 => socks4; 5 => socks5;
http
借助corkscrew
实现
ssh -o ProxyCommand="corkscrew 127.0.0.1 1081 %h %p" root@server
git代理配置
git通过下面命令实现代理。
git config --global http.proxy http://127.0.0.1:1081 git config --global https.proxy http://127.0.0.1:1081
取消代理则为
git config --global --unset http.proxy git config --global --unset https.proxy
wget代理配置
借助环境变量实现(变量全小写),例如
https_proxy=http://127.0.0.1:1081 http_proxy=http://127.0.0.1:1081 ftp_proxy=http://127.0.0.1:1081
或者利用-e
(--execute=COMMAND
)附加参数
wget -e "https_proxy=http://127.0.0.1:1081" https://fqdn:port/downloadPath
pip代理配置
pip通过添加参数--proxy=http://127.0.0.1:1081
来实现代理,如
pip --proxy=http://127.0.0.1:1081 install requests
注意:pip想要使用socks5代理需要提前安装pysocks
,即pip install pysocks
npm代理配置
npm通过下面命令实现代理。
npm config set proxy http://127.0.0.1:1081 npm config set https-proxy http://127.0.0.1:1081
取消代理则为
npm config delete proxy npm config delete https-proxy
全局代理配置
分应用代理配置(Proxifier)
通过使用第三方软件Proxifier来实现,为什么是这个软件呢,因为这个软件激活码很好找功能强大。其配置过程大致如下
其中第一条规则作用是防止本机循环代理;第二、三条防止代理代理软件(根据个人情况自行设定),作用与第一条类似;第三条默认情况,这里的默认情况是所有其他应用使用设定的代理服务器,当然你也可以设置成直接连接,然后添加需要代理的应用,实现分应用代理。
这个软件虽然能代理大部分软件,但是不能代理VMware,因为VMware使用的是虚拟网卡。
使用虚拟网卡实现全局代理(SSTap、Netch)
上面说了,使用Proxifier并不能实现VMware的代理,这时候就需要使用第三方软件SSTap
或Netch
来实现全局代理。值得注意的是,SSTap在2017-11-13停止开发。软件可以在GitHub轻松找到备份,这里就不提供下载连接了。配置也比较简单,在添加完服务器后,规则选全局即可。
这里推荐Netch
,因为其开源,且支持VLESS协议,目前正在更新在发布1.9.4之后已归档,可以在GitHub下载。
安卓全局代理(SagerNet)
安卓虽然有提供代理设置选项,但是国内绝大多数应用都不会遵从该设置,而root又比较麻烦,这时候就需要第三方软件Drony或者是开源项目SagerNet来实现。
这里推荐开源项目SagerNet。
通过VPN实现全局代理
将VPN的出口指向代理地址即可,与使用虚拟网卡实现全局代理实现方法基本一致。这里推荐tun2socks。
将VPN的出口指向代理地址。具体的使用方法可以参考tun2socks的Wiki。流程大致分为三步:创建虚拟网卡,分配IP,配置路由。这里以Linux为例,MacOs与Windows尚未验证。值得一提的是,route add
命令创建的路由在重启后失效。
Linux
执行lsmod | grep tun
,若没有结果,则需要执行sudo modprobe tun
,不然会有open: No such device
的报错。
创建 TUN 接口tun0
并为其分配 IP 地址。
ip tuntap add mode tun dev tun0
ip addr add 192.168.168.1/24 dev tun0
ip link set dev tun0 up
配置路由表,假设默认网关是192.168.1.1
。
ip route del default
ip route add default via 192.168.168.1 dev tun0 metric 20
ip route add default via 192.168.1.1 dev eth0 metric 30
启动 tun2socks 并将其绑定到主接口。
tun2socks -device tun0 -proxy socks5://host:port -interface eth0
注意:有时我们需要禁用rp_filter
,以便可以接收来自其他接口的数据包。
sysctl net.ipv4.conf.all.rp_filter=0
sysctl net.ipv4.conf.eth0.rp_filter=0
MacOs
tun2socks -device utun123 -proxy socks5://host:port -interface en0
sudo ifconfig utun123 198.18.0.1 198.18.0.1 up
sudo route add -net 1.0.0.0/8 198.18.0.1
sudo route add -net 2.0.0.0/7 198.18.0.1
sudo route add -net 4.0.0.0/6 198.18.0.1
sudo route add -net 8.0.0.0/5 198.18.0.1
sudo route add -net 16.0.0.0/4 198.18.0.1
sudo route add -net 32.0.0.0/3 198.18.0.1
sudo route add -net 64.0.0.0/2 198.18.0.1
sudo route add -net 128.0.0.0/1 198.18.0.1
sudo route add -net 198.18.0.0/15 198.18.0.1
Windows
Windows需要额外下载一个wintun.dll放到tun2socks目录下,或者存放到系统PATH目录(system32)。
tun2socks -device wintun -proxy socks5://host:port
在powershell(管理员)配置接口相关信息。
# netsh interface ip set address name="wintun" source=static addr=192.168.123.1 mask=255.255.255.0 gateway=none
# route add 0.0.0.0 mask 0.0.0.0 192.168.123.1 if <IF NUM> metric 5
# route add <server ip> mask 255.255.255.255 <primary gateway ip>
# 为接口设置网络
PS C:\> netsh interface ip set address name="wintun" source=static addr=192.168.123.1 mask=255.255.255.0 gateway=none
# 查看接口 IF NUM,这里是64
PS C:\> route print interface
===========================================================================
接口列表
64...........................WireGuard Tunnel
......
# 添加全局路由(可选)
PS C:\> route add 0.0.0.0 mask 0.0.0.0 192.168.123.1 if 64 metric 5
操作完成!
# 设置sock服务端路由,注意server ip 192.168.1.123一般为socket服务器IP,primary gateway ip 192.168.1.1一般为服务端的网关(第一跳),根据实际情况填写即可。
PS C:\> route add 192.168.1.123 mask 255.255.255.255 192.168.1.1
操作完成!
文章有(2)条网友点评
25-07-2022: Netch的开发已经重启!
写得很棒!