ITPub博客

首页 > 移动开发 > IOS > Web基础:网络协议、抓包方式与代理配置详解

Web基础:网络协议、抓包方式与代理配置详解

原创 IOS 作者:jdks 时间:2026-03-12 14:25:52 0 删除 编辑

Web基础

什么是包

包:Header + payload

Header:源地址、目的地址、长度等信息

payload:实际要传输的信息

抓包,可以获取到 payload,从而进行逆向分析、协议接口分析或App渗透测试。

对于抓包操作,可以使用 Sniffmaster 工具,它是一款全平台抓包工具,支持 iOS、Android、Mac、Windows 设备,无需设置代理、越狱或 root,即可解密 HTTPS 流量和抓取 TCP/UDP 数据流,方便进行协议分析和逆向工程。

1.帮助定位加密或混淆的代码中的关键部分

2.逆向接口(比如:一些第三方影视app的解析接口、分析是否为服务器校验)

3.篡改数据包实现免重打包破解&屏蔽广告

4.协议分析&爬虫需求

什么是Web

Web允许用户通过超链接在不同的网页之间导航,从而获取和浏览信息

常见网络设备

在网络通信架构中, 集线器、交换机、路由器、网关和网卡 构成了从物理信号传输到跨网络协议转换的完整链路。

网卡 作为终端设备的网络接入核心,负责将计算机的 数字信号转换为电信号或光信号(物理层),并通过MAC地址识别实现数据帧的封装与解封装(数据链路层),确保数据在局域网内的基础传输。

集线器 则作为物理层设备,通过多端口设计对信号进行再生放大并 广播至所有连接的设备,但这种共享带宽的机制 容易引发冲突(CSMA/CD协议),导致网络效率低下。

与之相比, 交换机 工作在数据链路层, 基于MAC地址表定向转发 数据帧,每个端口独享带宽并隔离冲突域,支持全双工通信,从而显著提升局域网的吞吐量和安全性。【交换机可以优化淘汰集线器】

当数据 需要跨越不同网络 时, 路由器 作为网络层设备介入,通过IP地址寻址、路由表维护及NAT(网络地址转换)技术,实现子网隔离、最优路径选择及内外网地址映射,成为 连接局域网与广域网(如互联网)的桥梁。

而 网关 则位于更高层次(通常为应用层), 专注于异构网络间的协议转换(如IPv4与IPv6、传统电话网络与IP网络)和数据格式适配,其形态可以是独立硬件或集成于路由器/交换机中,解决不同体系网络间的兼容性问题。例如,智能家居网关需将ZigBee协议转换为Wi-Fi协议,以实现设备与互联网的交互。

常见的协议以及分层模型

个人理解:

分层:将 网络功能划分 为多个独立的层级, 每层专注于特定任务,并通过接口与其他层交互

协议:定义 不同系统之间 数据的交换和 通信的规则。

常见的网络协议 包括:

  • TCP/IP:这是互联网的基础协议,包括了IP协议(用于 寻址和路由数据包)、TCP协议(用于 建立 可靠的数据流)和UDP协议(用于 不需要确认的快速 数据传输)。
  • HTTP:用于从Web服务器向浏览器传输 超文本文档(如HTML文件),明文传输,不验证通信方身份,无法验证报文完整性。
  • HTTPS:用SSL/TLS协议加密HTTP,HTTP + 通信加密 + 认证 + 完整性保护 = HTTPS
  • FTP:用于在互联网上传输 文件。
  • SMTP:用于 电子邮件 的传输。
  • DHCP:自动 分配IP地址 和其他网络配置参数给网络上的设备。
  • DNS:将 域名转换 为IP地址。

协议定义了数据如何在网络上传输、格式化、打包、寻址、路由、安全处理以及错误检测和纠正等方面的具体规则。

它确保了来自不同制造商的设备和运行不同操作系统的计算机能够相互通信。

应用层: HTTP、HTTPS、WebSocket、FTP、TFTP、SMTP、POP3/IMAP、 DNS、Telnet、SSH、SNMP、QUIC-HTTP/3

跨会话层/表示层(负责加密): TLS/DTLS

传输层: TCP、UDP、SCTP、DCCP、QUIC

网络层: IP(IPv4/IPv6)、ICMP、OSPF、BGP、RIP、ARP、IGMP

数据链路层: 以太网(Ethernet)、HDLC、PPP、PPPoE、IEEE 802.11(Wi-Fi)、STP、帧中继(Frame Relay)

HTTP/HTTPS

对于HTTPS而言,SSL/TLS 处在抽象出来的安全层,用于上下层传递时加密用

SSL/TLS的核心功能( 会话建立与管理)属于 会话层(第5层)

而 数据加密和格式化功能 属于 表示层(第6层)

Socket

  • Socket作为应用层与传输层之间的 中间抽象层,充当两者的桥梁。它并不严格属于OSI或TCP/IP模型的某一层,而是操作系统提供的 系统调用接口,用于连接用户态(应用层)和内核态。
  • Socket本身不是协议,而是一组  编程接口(API) ,用于封装和简化TCP/IP协议族的复杂操作。例如,通过Socket可以调用TCP或UDP协议实现数据传输。
  • 它对开发者隐藏了底层协议(如三次握手、数据分片等细节),仅暴露简单的接口供应用程序使用。

SOCKS代理

  • SOCKS代理 工作在会话层,仅转发数据包,不依赖具体应用协议

服务器

可以这样理解,我们平时使用的clash就是使用了代理服务器的原理。

一般来说,我们会有一个“机场”,这个指的就是提供代理服务器的平台,实际上它是和网上说的云服务器平台一样的(如阿里云、腾讯云等)。

(tips:机场相当于集成很多服务器的平台,不是服务器!相当于阿里云一样的平台!机场的服务器之所以能够绕开网络限制,是因为它们通常部署在不受限制的地区(如海外),并且经过优化配置,能够更好地隐藏用户的真实IP地址)

只不过机场里的服务器只负责转发流量,相当于租赁它的IP转发,而我们平时说的服务器是租赁它的性能或者是存储来跑数据或者存发数据。当然也可以用它来转发流量只不过无法绕开网络限制而已,而机场的服务器就可以绕开。

对于代理服务器来说,我们会通过这个代理服务器(机场的服务器)作为跳板,将流量发送到代理服务器的ip,然后代理服务器从它自己的ip再发送流量给目标地址。从而起到隐藏我们ip地址的作用。当然,因为隐藏了我们自己的ip地址,所以也能绕开一些对ip地址有限制的国外网站。

抓包方式

Sniffmaster 作为一款强大的抓包工具,支持 HTTPS 暴力抓包、TCP/UDP 数据流抓包和代理抓包,无需复杂配置即可在多种设备上实现抓包操作,帮助开发者进行协议分析和安全测试。

发包流程图

发包流程图

扩展:Clash配置模式

clash中的系统代理、TUN模式、混合配置是什么?

一、系统代理

定义与原理

系统代理是通过修改操作系统的全局网络设置, 将所有应用程序的流量通过代理服务器转发。在Clash中,此模式通过HTTP/SOCKS5协议将流量导向代理节点,适用于需要全局代理的场景。

核心特点

  • 全局性:影响整个系统的网络连接,所有应用默认走代理。
  • 配置简单:只需在系统设置中填入Clash的本地代理地址(如 127.0.0.1:7890)即可实现。
  • 协议支持:支持HTTP、HTTPS、SOCKS5等常见代理协议。

优缺点

  • 优点:

    • 无需逐一对应用单独设置代理,适合快速部署全局代理。
    • 兼容性较好,适用于大多数上网场景。
  • 缺点:

    • 可能被某些应用绕过(如UDP流量或系统服务)。
    • 无法精细控制流量分流,灵活性较低。

二、TUN模式

定义与原理

TUN模式通过 创建虚拟网络接口(如 tun0)在更底层( 网络层)拦截流量,若保留原始IP(如仅转发流量)则属于透明代理,若替换为代理服务器IP(如加密隧道)则不属于透明代理。

所有流量(包括TCP/UDP)均经过Clash处理,无需应用主动支持代理协议。

核心特点

  • 底层拦截:直接操作网络层数据包, 覆盖所有流量类型(如游戏、P2P等)。
  • 全局代理:强制所有流量经过Clash,包括系统服务和UDP流量。
  • 依赖虚拟接口:需在系统中创建虚拟网卡(如 tun0)。

优缺点

  • 优点:

    • 兼容性极强,可代理所有应用和协议。
    • 支持更复杂的规则(如IP段分流、DNS劫持)。
  • 缺点:

    • 需要管理员权限(如Root或sudo)。
    • 可能增加系统资源消耗,影响性能。

三、混合配置

定义与原理

混合配置是通过组合多种代理策略(如分流规则、负载均衡、直连策略)实现灵活流量管理。用户可在同一配置文件中定义不同规则,使特定流量走指定代理,其余流量按默认规则处理。

核心特点

  • 规则组合:支持基于域名、IP、协议等条件的精细化分流。
  • 多协议整合:可同时使用VMess、Trojan等多种代理协议。
  • 动态切换:根据网络状态自动选择最优节点(如延迟最低或负载均衡)。

典型场景

  • 分应用代理:社交媒体走代理,本地服务直连。
  • 负载均衡:多个代理节点按权重分配流量。
  • 故障转移:主节点失效时自动切换至备用节点。

配置示例

proxies:
  - name: "Proxy-A"
    type: vmess
    server: example.com
    port: 443
  - name: "Proxy-B"
    type: ss
    server: example.org
    port: 8443
proxy-groups:
  - name: "Auto-Switch"
    type: url-test
    proxies: ["Proxy-A", "Proxy-B"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300
rules:
  - DOMAIN-SUFFIX,google.com,Auto-Switch
  - DOMAIN-SUFFIX,example.local,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Auto-Switch

最佳实践

  • 模块化配置:使用 mixin 功能分离基础配置和自定义规则,避免订阅更新覆盖修改。
  • 规则优先级:精确规则(如特定域名)应置于通用规则(如GEOIP)之前。
  • 定期优化:通过测速工具更新节点延迟数据,调整策略组参数。

四、三种模式的对比

特性系统代理TUN模式混合配置 流量覆盖应用层(HTTP/SOCKS5)网络层(TCP/UDP)自定义(按规则) 配置复杂度简单中等复杂 灵活性低高极高 适用场景快速全局代理强制全局代理/游戏加速精细化分流/多协议整合 系统权限要求无需要Root或管理员权限无


五、常见问题解答

  1. TUN模式与系统代理的主要区别?

TUN模式 在更底层拦截流量,支持 所有协议(如UDP);

系统代理 仅处理 应用层 流量,可能被绕过。

  1. 混合配置是否会降低速度?

合理配置(如负载均衡)可优化速度,但复杂规则可能增加处理开销。

  1. 如何解决TUN模式权限问题?

在Linux中使用 sudo 运行Clash,或在Windows中以管理员身份启动。

  1. 混合配置中规则冲突如何处理?

Clash按规则从上到下匹配,首条匹配的规则生效。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70044672/viewspace-3112123/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2025-06-16

  • 博文量
    180
  • 访问量
    179683