你的代理,或许正在暴露你的IP

你的代理,或许正在暴露你的IP

Scroll Down

一、背景

  • 今天在和同事的讨论中,突然向我提问我所使用的代理是否真的应用了代理!第一反应是,我都流量肯定是走代理出去啊,我都开全局了!

  • 随后便是开始我的证明,在使用全局代理的模式下,在百度搜索“IP”,不出意外,是代理IP。但是,随后在终端的测试以及在一些安全工具使用的测试中,我发现它们并没有走代理流量,而还是自己的真实IP。一下子就感觉头大了。。。。。

  • 请回想下,你开着所谓的全局代理,又干过哪些好事。🤐💤

image-20230308000216478

二、原因

  • 像是我们所设定的所谓全局代理,其实就只是申明一个系统全局变量,但实际上只是部分应用会使用系统已声明的代理变量,而不是系统的全部流量都走代理出去。
  • 就我们经常使用的Clash、v2rayN,其定义的全局代理,也就是更改系统配置后,对系统环境声明一个系统变量,但该变量正如以上所言,其实并非系统全局所有的程序都会引用该变量,也就不是所有的流量都走代理端口了。
  • 需要深入对系统流量进行分析,windows推荐使用wireshark ,Linux推荐使用以下命令抓包后下载本地使用wireshark进行流量分析
    • tcpdump -w capture.cap

三、解决方案

3.1、在使用安全攻击工具时,额外配置代理

  • 示例-长亭洞鉴

image-20230307233737540

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:端口

长期代理使用(推荐)

  • 系统环境变量中创建http_proxyhttps_proxy 的变量,然后以你的代理服务参数

image-20230307231820122

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

3.2.3检验代理效果

  • 请于终端中输入以下指令查看:curl -v gotarget.top
  • Windows环境:

image-20230307234138866

  • Linux环境:
    • 补充:查看自身外网IP命令:curl ifconfig.me
    • curl使用代理:curl -v -x "协议://用户名:密码@代理IP:代理端口" gotarget.top

image-20230307234308059