## 一、背景
- 今天在和同事的讨论中,突然向我提问我所使用的代理是否真的应用了代理!第一反应是,我都流量肯定是走代理出去啊,我都开全局了!
- 随后便是开始我的证明,在使用全局代理的模式下,在百度搜索“IP”,不出意外,是代理IP。但是,随后在终端的测试以及在一些安全工具使用的测试中,我发现它们并没有走代理流量,而还是自己的真实IP。一下子就感觉头大了。。。。。
- 请回想下,你开着所谓的全局代理,又干过哪些好事。:zipper_mouth_face::zzz:
![image-20230308000216478](https://picture.gotarget.top/202303080002769.png)
## 二、原因
- 像是我们所设定的所谓`全局代理`,其实就只是申明一个系统全局变量,但实际上只是部分应用会使用系统已声明的代理变量,而不是系统的全部流量都走代理出去。
- 就我们经常使用的Clash、v2rayN,其定义的全局代理,也就是更改系统配置后,对系统环境声明一个系统变量,但该变量正如以上所言,其实并非系统全局所有的程序都会引用该变量,也就不是所有的流量都走代理端口了。
- 需要深入对系统流量进行分析,windows推荐使用[wireshark](https://owncloud.gotarget.top/Safely_Tools/%E6%B5%81%E9%87%8F%E6%8A%93%E5%8C%85/WireShark/Wireshark-win64-3.6.6.exe) ,Linux推荐使用以下命令抓包后下载本地使用`wireshark`进行流量分析
- `tcpdump -w capture.cap`
## 三、解决方案
### 3.1、在使用安全攻击工具时,额外配置代理
- 示例-长亭洞鉴
![image-20230307233737540](https://picture.gotarget.top/202303072337333.png)
### 3.2、更改系统配置,对终端也采用流量代理
#### 3.2.1Windows环境
**临时代理使用**
- 有密码的情况(终端输入以下命令)
`set http_proxy=socks5://账号:密码@代理IP:端口`
`set https_proxy=socks5://账号:密码@代理IP:端口`
- 无密码的情况
`set http_proxy=socks5://代理IP:端口`
`set https_proxy=socks5://代理IP:端口`
**长期代理使用(推荐)**
- 在[系统环境变量](https://www.xitongcheng.com/jiaocheng/win10_article_78035.html)中创建`http_proxy`、`https_proxy` 的变量,然后以你的代理服务参数
![image-20230307231820122](https://picture.gotarget.top/202303072334994.png)
#### 3.2.2Linux环境(示例:ubuntu)
**临时代理使用**
- 有密码情况(终端输入以下命令)
`export http_proxy="socks5://账号:密码@代理IP:端口"`
`export https_proxy="socks5://账号:密码@代理IP:端口"`
- 无密码的情况
`export http_proxy="socks5://代理IP:端口"`
`export https_proxy="socks5://代理IP:端口"`
**长期代理使用(推荐)**
- 修改自己的用户目录下的隐藏文件`.bashrc` 或`.zshrc` ,设置系统环境变量,在文件中添加以下内容
- 注:`.zshrc` 是用户使用zsh美化shell后所使用的默认shell,`.bashrc`是系统默认的shell环境
`export http_proxy="socks5://账号:密码@代理IP:端口"`
`export https_proxy="socks5://账号:密码@代理IP:端口"`
![image-20230307233437897](https://picture.gotarget.top/202303072334300.png)
#### 3.2.3检验代理效果
- 请于终端中输入以下指令查看:`curl -v gotarget.top`
- Windows环境:
![image-20230307234138866](https://picture.gotarget.top/202303072343013.png)
- Linux环境:
- 补充:查看自身外网IP命令:`curl ifconfig.me`
- curl使用代理:`curl -v -x "协议://用户名:密码@代理IP:代理端口" gotarget.top`
![image-20230307234308059](https://picture.gotarget.top/202303072343583.png)
你的代理,或许正在暴露你的IP