梯子的使用
代理检查
摘录自:简谈代理检测与风控科普 - 开发调优 - LINUX DO
IP检测
IP黑名单
商家常用的商业 IP 信誉数据库为 MaxMind、IP2Location、ipinfo、IPQS。
- MaxMind 是老牌 IP 地理定位和欺诈检测服务商,GeoIP 数据库几乎是行业标准,大量网站默认使用
- IP2Location 正如其名字所言,主要提供 IP 地理定位服务,代理检测不太灵敏,常作为 MaxMind 的替代或补充
- ipinfo 则是中小型项目常用的数据库,开发者友好的 IP 信息 API,提供 ASN、公司、隐私检测等数据
- IPQS 专注于欺诈检测和风险评分,对代理 / VPN / 机器人检测特别激进,金融和电商风控首选
MaxMind 和 IPQS 是你最常遇到的 "敌人"—— 前者几乎无处不在,后者对代理检测最严格。如果你的 IP 在这两家的数据库里被标记为 "数据中心" 或 "高风险",大概率会被各种网站风控。 IP2Location 检查 IP 地址类型
打开 IP2Location,你会看到这个页面
左侧是基础信息,右侧是代理数据,左侧关注 Usage Type 和 Category 即可,此图中就是 (DCH) Data Center/Web Hosting/Transit 和 (IAB19-11) Data Centers,即为明确的机房;右侧的话一般无数据 (因为 IP2 这个库确实比较迟钝,不怎么关注代理数据,如果有数据那就要警惕了,连 IP2 都给你标注了,这个代理真的很明显了)。
家宽的话一般就会显示
明确的 (ISP) Fixed Line ISP 和 (IAB19-18) Internet Technology,以及下方你也可以看到 AS Usage Type 为 (ISP) Fixed Line ISP,如果你是移动 5G 数据这类用户还会看到 MOB 等类型。
IPQS检测:IPQS User Dashboard Login | IPQualityScore.com
IP 地理位置一致性
网站可以通过浏览器端获取你的系统时区,同时,网站通过你的 IP 地址查询地理位置,得到该 IP 所属的时区,二者直接对比是否一致即可 查看 ipleak、browserleaks 或者小玩具特征检测工具来简要查看结果 防护手段: 很简单,在自己的操作系统上改成与你 IP 对应的时区或者使用浏览器更改时区插件,或者干脆使用指纹浏览器,指纹浏览器会直接设置 IP 对应时区,这都能很好的防护。
浏览器语言 vs IP 所在国家
原理:浏览器会向网站发送你的语言偏好,给你返回合适的语言,比如你是美国人,当然希望网站给你返回英文页面。 你可以查看 browserleaks 来简要查看结果。 浏览器修改首选语言即可,如果是指纹浏览器直接配置语言列表也很方便。
系统区域设置的矛盾
原理: 除了时区和语言,还有一些更隐蔽的系统级信息可以被 JavaScript 读取,例如日期格式习惯 (“zh-CN”)、数字格式 (千分位、小数点)、货币格式偏好 (US$/¥)、键盘布局 (中国用户通常是 QWERTY + 中文输入法)、系统字体 (中文系统有宋体、微软雅黑;美国系统没有)、默认搜索引擎 (中国用户可能用百度、夸克)、剪贴板内容语言 (粘贴的是中文还是英文) 等等诸如此类。
WebRTC 泄露
WebRTC 的设计目标是建立点对点(P2P)连接。为了让两个用户能直接通信(而不是所有数据都经过服务器中转),浏览器需要知道 "我在网络中的真实位置"—— 也就是你的 IP 地址。
关键问题在于:WebRTC 获取 IP 的过程发生在操作系统的网络层,而不是浏览器的代理层。WebRTC 的 ICE 收集会通过浏览器发起 STUN 交互(UDP 为主),而很多代理配置只代理 HTTP (S) 或只覆盖部分出站路径,导致 STUN UDP 直连。
STUN 服务器是什么
STUN (Session Traversal Utilities for NAT) 服务器的作用很简单:看看我的 IP 是啥?。
大多数用户都在 NAT(网络地址转换)后面,比如家里的路由器。你的电脑可能是 192.168.1.100(内网 IP),但外界看到的是路由器的公网 IP。STUN 服务器就是帮你发现这个公网 IP 的。
常见的公共 STUN 服务器:
stun.l.google.com:19302(Google)stun.cloudflare.com:3478(Cloudflare)stun.services.mozilla.com:3478(Mozilla)
如上图,浏览器可以向公共 STUN 服务器发起请求,询问 STUN 服务:我的 ip 是啥?STUN 服务器就会返回它所能看到的 IP 地址。
ICE Candidate 收集过程
当网页使用 WebRTC 时,浏览器会收集所有可能的连接方式,这些叫做 ICE Candidate(候选地址)。
收集过程大致如下:
- 收集本地地址:192.168.1.100 (内网 IP)
- 向 STUN 服务器查询
- 如果则询问有 TURN 服务器
问题就出在第二步上:浏览器向 STUN 服务器发送 UDP 请求时,这个请求不走浏览器的 HTTP 代理设置,而是直接通过系统 socket 在传输层发起发出,这个时候就会暴露你的真实 IP。
webRTC泄露防护
下载 google 扩展 WebRTC Leak Prevent,选择 Disable non-proxied UDP (force proxy) 即可,这会强制所有 WebRTC 流量通过代理,可以防止真实 IP 泄露。这个选项本质上是:宁可让 WebRTC 不工作,也不要让它用直连 UDP 把真实地址暴露出去。所以检测页会出现 “拿不到任何 WebRTC IP”。这个时候实时视频等功能完全无法使用,这个方法最绝对,可以绝对防止 WebRTC 泄露,代价是部分应用无法使用。
不单独处理 webrtc 的问题,直接让整个电脑所有流量都走代理,也就是我们的 TUN 模式。
TUN 是一种虚拟网络设备,工作在网络层 (Layer 3),当你的代理软件开启 TUN 模式时,它会:
- 创建一个虚拟网卡(比如
utun0或tun0) - 接管系统的所有网络流量 (包括 TCP 和 UDP)
- 在操作系统网络栈层面就把流量导向代理
- 系统级代理,所有软件自动走代理 (再按分流规则分流)
DNS泄露
打开 ipleak 来确认自己是否出现 DNS 泄露,只要出现 DNS 服务器中出现任何一个中国大陆地区的,那就是发生了 DNS 泄露。 检测通常基于权威 DNS 看到的递归解析器来源;ECS 在部分情况下会进一步暴露客户端子网信息。这是 DNS 协议的一个扩展,原本是为了优化 CDN 性能而设计的,但也可以被用来检测 DNS 泄露。
工作流程:
- 网站生成一个唯一的随机子域名,比如:
dnstest1234567890.edns.ip-api.com - 你的浏览器尝试访问这个域名
- 你的 DNS 服务器向
ip-api.com的权威 DNS 服务器查询这个域名 - 权威 DNS 服务器记录下:谁来查询的(你的 DNS 服务器 IP)
- 网站通过 API 获取这个 DNS 服务器的 IP 和地理位置信息
DNS泄露防护
V2RAYN:无需进行任何防护,V2RAYN 会自动配置,大部分情况下不会出现 DNS 泄露的情况,但默认配置不一定能完全防止泄露
Clash 系列:选择合适的分流规则和 DNS 覆写规则。
TCP/IP 协议栈指纹
信息 1:UA 声称 (可控) 浏览器中的 UA 声称信息,这个可以由用户设置,比如指纹浏览器中就可以设置 信息 2:指纹推断 (难以伪装)
这是通过分析 TCP 数据包推断出的系统,只和你的出口节点机器有关。
- 内核级别的泄露
- 与用户客户端配置无关
- 理论上可以调节出口机器的系统指纹,但需要:
- 修改内核参数(需要 root 权限)
- 专业的网络知识
- 操作不当可能影响网络连接 无需防护,不是因为 OS 指纹识别不准,而是因为防护代价太高了,完全不在日常使用的防护手段内。即使 p0f、Nmap 等工具的 OS 指纹识别准确率相当高,但在网页风控场景中确实较少直接使用(因为需要原始数据包访问权限)。
浏览器指纹
打开 BrowserLeaks 这个最全面的指纹检测工具集,你可以看到浏览器能获取你的一切信息 也可以看看这两个常用的网站的一致性评分 iphey、pixelscan。
指纹常见维度
- Canvas 指纹:网站让浏览器在画布上画一段文字 / 图形,再把像素结果做成哈希值。不同系统、显卡驱动、浏览器渲染实现会产生细微差异,因此可以用来 “识别同一设备环境”。它不等于 “检测代理”,但如果渲染结果呈现出明显的 “桌面环境特征”,而你却声称自己是 iPhone,这种不一致会成为风控加分项。
- WebGL 指纹:WebGL 能暴露 “图形渲染器的身份线索”,用于判断你到底像手机还是像电脑 (有些浏览器 / 隐私设置会对这些信息做模糊处理,所以风控通常当作加权信号)。比如你在指纹浏览器中声称设备: iPhone 13Pro,结果 WebGL 却显示 NVIDIA GeForce GTX 1060,iPhone 上怎么可能有 NVIDIA 显卡,一眼丁真鉴定为假。
- 字体指纹:系很多时候网页并不是直接拿到 “完整字体列表”,而是通过测试一些常见字体是否存在、渲染宽度差异来推断系统 / 地区。如果 IP 显示在 US,但环境里出现大量中文字体特征 (微软雅黑 / 宋体),就会显得不自洽。
- 屏幕分辨率 & 硬件并发数:网站发现你声称的 iPhone 13 Pro (1170×2532&6 核) 实际上是 1920×1080&16 核,明显不自洽 (分辨率可能受外接显示器 / 缩放影响,核心数也可能受省电 / 虚拟化影响,所以一般是和其他信号一起看)。
- Audio Context 指纹:网页用一段 “合成音频计算” 生成结果,不同系统 / 驱动 / 浏览器的实现细节会让结果有细微差别,因此可用于识别环境。
自动化 / 无头浏览器检测
看看机器人特征 sannysoft
翻墙的理论
第一章:GFW
要想成功突破封锁,首先必须深刻理解封锁的原理。中国的网络审查系统,常被称为防火长城(GFW),它不是单一设备,而是一个由多个子系统构成的庞大监控和过滤体系的统称 。
GFW 的主要封锁手段可以分为几个层次:
- DNS 污染(域名系统劫持):这是最基础也最常见的封锁方式。当你尝试解析一个被墙域名的 IP 地址时,GFW 会抢先返回一个错误或无意义的 IP 地址,让你无法连接。从技术上看,GFW 会伪装成目标 DNS 服务器,返回格式非常固定的虚假IP信息 。
- IP 黑名单封锁:如果某个服务器的 IP 地址(如 Google 的某组服务器)被列入黑名单,所有对这个 IP 的访问都会在连接阶段被直接中断(连接被重置,即 TCP 重置攻击)。
- 深度包检测(DPI):这是 GFW 的核心技术。它不再只看数据包的 IP 头和端口,而是会窥视数据包内部的应用层数据。即使你使用了加密,GFW 也可以通过流量特征分析(如特定的握手特征、数据包长度、发送频率等)来判断你是否在使用代理协议,进而进行封锁 。
- 关键字过滤:对于 HTTP 明文流量,如果 URL 或页面内容包含敏感关键词,连接会被重置 。
总结: GFW 是一个动态的、多层次的智能系统。你的代理工具和协议越“不像”代理,越像普通的互联网加密流量,就越难被识别和封锁。
第二章:主流协议的原理与对比
理解了 GFW 的检测机制,我们来看看各种协议是如何“见招拆招”的。
2.1 初代经典:Shadowsocks(SS)
- 原理:SS 的核心思想是将传统的代理流量转换成一把无法识别的“乱码”。它在客户端和服务器之间建立一个加密的 SOCKS5 隧道,所有流量都经过对称加密(如 AES、ChaCha20)。
- 如何突破:它解决了“明文传输”的问题,让 GFW 无法直接看到你在访问什么网站。
- 弱点:虽然数据是加密的,但 SS 协议的本身是固定的。随着时间的推移,GFW 的 DPI 设备可以通过分析流量的特定模式(如数据包长度分布、握手方式)来识别出 SS 流量,甚至无需解密就能判定。因此,“原版 SS”目前在高强度封锁环境下极不稳定 。
2.2 中国特供版:ShadowsocksR(SSR)
- 原理:SSR 是 SS 的一个分支,主要针对当时中国的 GFW 进行了“优化”。它在 SS 的基础上增加了协议混淆和协议插件功能 。
- 如何突破:
- 协议混淆:可以将流量伪装成 HTTP 或其他常见协议,试图欺骗 DPI。
- 多参数组合:通过大量可变的参数(如混淆参数
tls1.2_ticket_auth),试图增加特征,让 GFW 难以捉摸。
- 现状:SSR 协议本身已经停止更新,其作者因法律风险关停项目 。由于其设计是基于“与 GFW 对抗”而非“完全隐身”,且代码老旧,如今已基本被更现代的工具淘汰。不建议新项目使用 SSR。
2.3 全能工具箱:V2Ray(VMess 协议)及其组合技(WS+TLS)
- 原理:V2Ray 是一个平台,核心协议是 VMess。VMess 在设计上比 SS 更复杂和安全,具有防止时间戳重放攻击等特性 。
- “WS+TLS” 为何是经典?
这是 V2Ray 最广泛使用的配置,其本质是“借壳上市”。
- TLS(传输层安全协议):将你的代理流量包裹在标准的 TLS 加密连接中(就是访问 HTTPS 网站时用的那个加密)。从外面看,你的流量和看网页的加密流量完全一样。
- WebSocket(WS,WebSocket):V2Ray 将代理数据包装在 WebSocket 里,再通过 TLS 传输。WebSocket 是现代 Web 技术,通常用于实时聊天等场景,因此这种流量在网络上非常常见。
- 突破原理:这种组合让流量变得 “ indistinguishable”(难以区分)。GFW 看到的是一个指向你服务器 443 端口的 TLS 加密流量,除了知道你在“看一个加密网站”外,无法获得更多信息。这是目前最稳定、最主流的方案之一 。
2.4 以假乱真:Trojan
- 原理:Trojan 的设计哲学与 WS+TLS 类似,但更加“纯粹”。它直接跑在 TLS 协议上,并将自己伪装成一个标准的 HTTPS 网站 。
- 如何突破:当你访问 Trojan 服务器时,它会先和你完成标准的 TLS 握手。如果 GFW 主动探测,会发现这个 IP 的 443 端口上确实跑着一个正常的 HTTPS 网站(比如一个假的博客)。只有在你提供了正确的密码(包含在 TLS 加密隧道内)后,服务器才会将你识别为代理用户并开始转发流量。
- 对比:相比 V2Ray,Trojan 协议更简洁,性能开销略低,隐蔽性同样优秀,被认为是 V2Ray WS+TLS 的有力竞争者 。
2.5 剑走偏锋:VPN 协议(WireGuard/OpenVPN/IKEv2)
- 原理:VPN 工作在比代理更底层的网络层面。它会在你的设备和服务器之间建立一个虚拟的“网络隧道”,你的所有网络流量(不仅仅是浏览器,包括任何 App、游戏)都会通过这条隧道传输。
- 比 Shadowsocks 和 V2Ray 好在哪里?
- 全局接管:SS/V2Ray 通常是应用层的代理(SOCKS5/HTTP),有些软件不走代理就需要额外配置(如 tun 模式)。VPN 是系统级的,一旦连接,所有流量默认都走隧道。这对于需要代理非浏览器应用(如游戏、命令行工具、某些 App)非常方便,不容易出现“流量泄漏”。
- 协议优势:现代 VPN 协议如 WireGuard,代码量极小,安全性高,速度非常快,延迟低。OpenVPN 则是久经考验的经典。
- 为什么很多“机场”不用 VPN?
- 部署和运维成本高:VPN 需要配置更复杂的 PKI 证书体系,对服务器配置要求也高,且多用户管理不如 SS/V2Ray 的 Web 面板方便。
- 协议特征:OpenVPN 等协议的特征相对明显,在某些高墙环境下可能不如 TLS 伪装流量稳定。
- 现状:随着 WireGuard 的流行,将其流量进一步伪装成(如通过
udp2raw或TunSafeover TCP)的方案也开始出现。但对于普通机场,SS/V2Ray 仍是主流,因为它们在“易用性、隐蔽性和性能”之间取得了极佳的平衡。
第三章:翻墙软件客户端对比
3.1 Clash 系列
- 特点:以“规则引擎”为核心优势。你可以编写非常复杂的规则,根据域名、IP、地理位置、进程名等条件,决定哪些流量走代理、哪些直连、哪些拒绝(例如,让 Netflix 流量走香港节点,让 YouTube 走美国节点,让国内网站直连)。
- 优势:配置灵活,资源占用适中,支持 SS、V2Ray、Trojan 等多种协议,提供 RESTful API 方便第三方 UI 控制。是当前最主流的客户端内核。
- 代表:Clash for Windows(CFW)、ClashVerge。
3.2 V2Ray 系列
- 特点:作为 V2Ray 项目的官方客户端(v2ray-core),它功能极其强大,是很多其他客户端的“引擎”。除了作为客户端,它更常被用作服务器端。
- 优势:原生支持 VMess、VLESS、Trojan、SS 等多种协议,拥有强大的路由(路由)和内嵌的 DNS 模块。其设计哲学是构建一个“个人计算机的网络基础平台”,功能深度远超 Clash。
- 代表:v2rayN(Windows,GUI)、V2RayA。
第五章:详解各类线路
线路的质量直接决定了用户体验。线路,即你的数据从你家到海外服务器所经过的物理路径和路由策略。
5.1 线路类型详解
-
CN2(中国电信下一代承载网):中国电信的精品网络,分为 CN2 GT 和 CN2 GIA。
- CN2 GIA(Global Internet Access):顶级线路。去程和回程都强制走 CN2 节点。这意味着无论是你发出请求,还是服务器返回数据,都走的是电信最优质、拥堵最少的高优先级通道。延迟低、丢包少,价格也最贵 。
- CN2 GT:半程 CN2。通常是去程走 CN2,回程走普通 163 网络(AS4134)。回程拥堵严重,晚高峰体验下降明显。
-
BGP(边界网关协议):BGP 本身不是线路,而是一种路由协议。一个 BGP 机房会同时接入多家运营商(电信、联通、移动、教育网等),并根据最优路径智能地将流量路由出去。对于国际用户来说,一个优秀的 BGP 机房可以保证无论你从哪个运营商接入,都能有相对不错的体验。
-
IPLC(国际私有租用电路):真正的“专线”。
- 原理:这是运营商之间点对点的私有线路,不走传统的国际互联网入口。
- 优势:IPLC 专线不过 GFW,因此不存在被封锁的问题(至少目前理论上是这样)。而且因为是私有线路,带宽独享,几乎没有拥堵,延迟极低,稳定性极高。
- 劣势:极其昂贵,通常只有大型企业或顶级机场主才会租用。
-
云服务商直连(GCP / AWS / Azure)
- GCP(谷歌云平台):Google 拥有自己的全球光纤网络,线路质量非常好,尤其是台湾地区和香港地区节点,直连大陆的延迟和速度都非常出色。
- AWS(亚马逊云):全球市场份额第一。其东京、新加坡等节点直连大陆的速度尚可,但晚高峰拥堵情况不一。AWS 的光缆和网络架构也非常强大。
- Azure(微软云):网络性能同样优异,但在亚洲地区的网络覆盖和优化策略上,与 GCP 和 AWS 各有千秋 。
- 优势:弹性计费、全球节点多、网络基础设施顶级。
- 劣势:按流量计费价格偏高,且直连线路(非 CN2)在晚高峰可能拥堵。
5.2 如何选择线路?
| 线路类型 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| IPLC 专线 | 不过墙、极稳、极低延迟 | 天价 | 高端机场、企业、不差钱的个人 |
| CN2 GIA | 双向精品网、体验极佳、比较稳 | 贵(相对专线便宜) | 优质机场、自建主力机 |
| CN2 GT | 价格适中 | 晚高峰拥堵,回程体验差 | 低预算备用线路 |
| BGP/直连 | 价格适中,配置灵活,全球接入好 | 晚高峰拥堵(非 CN2 时) | 中端机场、对全球用户开放的节点 |
| 普通线路 | 便宜 | 晚高峰无法使用,丢包严重 | 廉价机场,仅适合低负载或非高峰期 |
第六章: 翻墙方式(接入层)的优劣
6.1 软件/客户端翻墙
- 方式:用户在电脑或手机上安装 Clash、v2rayN 等软件,手动开启代理。
- 特点:最灵活,可以随时开关,可以进行精细化的规则分流。
6.2 网关模式(软路由/硬路由翻墙)
- 方式:在家庭网络的入口处(路由器)部署代理功能。所有连接到此路由器的设备,都自动处于“可翻墙”状态,无需任何客户端配置。这就是所谓的“无感翻墙”。
- 硬件选择:
- 软路由:使用 X86 架构的迷你电脑或旧电脑安装 OpenWrt、iKuai、LEDE 等系统。性能强,可玩性高,可以跑满千兆带宽,适合大流量和复杂的规则分流 。
- 硬路由:在普通家用路由器上刷入第三方固件(如梅林、Padavan)。性能取决于硬件,适合轻度用户。
- 实现方式:
- 主路由模式:软路由直接作为拨号上网的主路由,接管所有流量。
- 旁路网关模式:主路由(如普通硬路由)负责拨号,软路由作为“旁路由”存在。需要“科学上网”的设备,只需将网关和 DNS 手动指向旁路由的 IP 即可 。这种模式风险低,不影响家庭原有网络。