当前位置: 首页 > news >正文

网络基础知识与代理配置

网络基础知识与代理配置

1. 网络基础知识

1.1 OSI七层模型与协议对应

OSI (Open Systems Interconnection) 开放系统互联参考模型,是国际标准化组织(ISO)在1984年制定的网络通信理论模型。

1.1.1 OSI模型的定位
  • 理论参考模型:主要用于教学和概念理解
  • 现实应用:实际网络多采用TCP/IP四层模型
  • 价值:提供了清晰的网络分层思维框架
OSI层功能典型协议
应用层网络服务接口,为应用程序提供网络服务HTTP, HTTPS, FTP, SMTP, DNS, Telnet, SSH
表示层数据格式化、代码转换、数据加密解密SSL/TLS, JPEG, GIF, ASCII, 压缩算法
会话层建立、管理和终止会话连接NetBIOS, RPC, SQL会话, LDAP
传输层提供端到端的可靠数据传输TCP, UDP
网络层数据包选择路由,逻辑地址IP, ICMP, ARP, RARP, OSPF, BGP, RIP
数据链路层传输有地址的帧以及错误检测功能Ethernet, PPP, HDLC, Frame Relay
物理层以二进制数据形式在物理媒体上传输数据IEEE802.3物理标准, RS-232, V.35, RJ45接口

重要概念澄清

  • ARP/RARP 属于网络层协议,用于IP地址与MAC地址的转换
  • TCP/UDP 是传输层协议,为上层应用提供不同的传输服务
  • ping命令 使用ICMP协议(网络层),不会使用HTTP代理
1.1.2 OSI vs TCP/IP 模型对比与实际应用

现代网络实际使用的是 TCP/IP 四层模型(也称为Internet协议栈):

TCP/IP四层对应OSI层主要功能典型协议
应用层应用层+表示层+会话层网络应用和服务HTTP, HTTPS, FTP, DNS, SSH
传输层传输层端到端数据传输TCP, UDP
网络层网络层IP路由和寻址IP, ICMP, ARP
数据链路层数据链路层+物理层硬件接口和媒体访问Ethernet, WiFi

SSL/TLS 技术实例:以HTTPS为例说明两种模型的差异

在实际开发中,SSL/TLS展现了两种模型的不同视角:

OSI七层视角(理论分析):
├─ 应用层      ← HTTP协议内容
├─ 表示层      ← SSL/TLS数据加密
├─ 会话层      ← SSL/TLS握手管理
├─ 传输层      ← TCP可靠传输
├─ 网络层      ← IP路由
├─ 数据链路层   ← Ethernet帧
└─ 物理层      ← 网线/光纤TCP/IP四层视角(工程实现):
├─ 应用层      ← HTTPS (HTTP+SSL/TLS)
├─ 传输层      ← TCP
├─ 网络层      ← IP
└─ 数据链路层   ← Ethernet

实践理解

  • OSI模型价值:帮助理解SSL/TLS的多重功能(加密、会话、安全)
  • TCP/IP模型价值:指导实际编程(HTTPS库的使用方式)
  • 技术本质:SSL/TLS功能复杂,跨越多个抽象层次,这是现代网络技术的常见特征

学习建议

  • 用OSI模型理解技术原理功能分解
  • 用TCP/IP模型指导实际开发系统部署
  • 重点掌握技术应用,而非纠结于理论归类

1.2 Socket API 与 OSI 模型的关系

重要Socket 不是协议而是API,它是应用程序访问传输层协议的编程接口。

Socket 是一个编程抽象层,位于应用层和传输层之间:

层次组件说明
应用程序用户代码业务逻辑实现
Socket API编程接口提供网络通信的标准接口
传输层TCP/UDP实际的网络协议栈
Socket 类型与对应协议层
  • TCP Socket:基于TCP协议的可靠连接
  • UDP Socket:基于UDP协议的无连接通信
  • Raw Socket:直接访问网络层协议(如IP、ICMP)
  • Unix Domain Socket:本地进程间通信,不涉及网络协议栈

1.3 网络安全与认证层

在 OSI 模型基础上,现代网络应用还需要考虑安全认证机制:

1.3.1 SASL (Simple Authentication and Security Layer)

SASL 是一个认证框架,工作在会话层和表示层之间:

特性说明
工作层次会话层(建立安全会话)+ 表示层(数据格式化)
认证方式挑战-响应模式
支持机制PLAIN、DIGEST-MD5、GSSAPI/Kerberos 等
1.3.2 ZooKeeper SASL 认证实例

以 ZooKeeper 为例,展示应用层认证的实现:

# ZooKeeper SASL 配置示例
# 服务器端配置
export SERVER_JVMFLAGS="-Djava.security.auth.login.config=/path/to/jaas.conf"# 客户端连接
zkCli.sh -server zoo1:2181 -client-configuration /path/to/client.properties

认证流程

  1. TCP连接建立:客户端与ZooKeeper服务器建立TCP连接
  2. SASL握手:服务器发送认证挑战
  3. 凭证验证:客户端提供认证信息(如Kerberos票据)
  4. 会话建立:认证成功后建立安全会话
  5. 数据交换:在安全上下文中进行ZooKeeper操作
1.3.3 认证与代理的关系
  • 代理转发认证:某些代理服务器可以转发SASL认证信息
  • 认证代理:部分企业环境使用认证代理统一管理身份验证
  • 协议兼容性:SASL认证需要代理服务器理解并正确转发认证协议

2. 代理配置与使用

2.1 代理工作原理

代理服务器作为客户端和目标服务器之间的中介,转发网络请求和响应:

客户端 ──→ 代理服务器 ──→ 目标服务器←──          ←──
2.1.1 基本工作流程
  1. 客户端配置:将代理服务器地址配置到应用程序或系统环境变量
  2. 请求转发:客户端将原本发往目标服务器的请求发送给代理服务器
  3. 代理处理:代理服务器接收请求,代替客户端向目标服务器发起连接
  4. 响应转发:代理服务器将目标服务器的响应转发回客户端
2.1.2 代理类型区别
代理类型工作层次支持协议特点
HTTP代理应用层HTTP/HTTPS理解HTTP协议,可缓存、过滤内容
SOCKS代理会话层TCP/UDP等多种透明转发,支持更多协议类型
透明代理网络层IP层面客户端无需配置,网关级拦截
2.1.3 代理的优势
  • 访问控制:突破网络限制,访问被屏蔽的服务
  • 隐私保护:隐藏真实IP地址
  • 缓存加速:代理服务器可缓存常用内容
  • 流量控制:统一管理和监控网络流量

2.2 操作系统配置差异

不同操作系统的代理配置方式略有不同:

操作系统配置方式语法格式
Linux/macOS环境变量 exportexport http_proxy=address
WindowsPowerShell 环境变量$env:http_proxy="address"
WindowsCMD 环境变量set http_proxy=address

2.3 代理配置详解

以下以 Linux/macOS 为主要示例:

2.3.1 基本配置
# HTTP/HTTPS 代理
export http_proxy=http://127.0.0.1:8001
export https_proxy=http://127.0.0.1:8001# 所有协议代理(SOCKS5)
export ALL_PROXY=socks5://127.0.0.1:1081# 不走代理的地址(可选)
export no_proxy="localhost,127.0.0.1,::1"
2.3.2 代理认证配置

如果代理服务器需要认证,格式为:

# 带认证的HTTP代理
export http_proxy=http://username:password@proxy-server:port
export https_proxy=http://username:password@proxy-server:port# 带认证的SOCKS5代理
export ALL_PROXY=socks5://username:password@proxy-server:port

2.4 代理测试

2.4.1 基本连通性测试
# 测试代理是否生效
curl https://ipinfo.io/ip# 详细测试(显示连接过程)
curl -v http://www.google.com
2.4.2 指定代理测试
# 使用 SOCKS5 代理
curl -x socks5://127.0.0.1:1080 https://www.google.com# 使用 HTTP 代理
curl -x http://127.0.0.1:1080 https://www.google.com

2.5 环境变量配置

# Hugging Face 镜像
export HF_ENDPOINT="https://hf-mirror.com"

2.6 DNS/hosts 文件配置

编辑 /etc/hosts(Linux/macOS)或 C:\Windows\System32\drivers\etc\hosts(Windows):

2.6.1 GitHub 访问优化
140.82.112.3    github.com
140.82.112.4    gist.github.com
140.82.112.5    api.github.com
140.82.112.5    codeload.github.com
185.199.108.153 assets-cdn.github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.153 assets-cdn.github.com
199.232.69.194  github.global.ssl.fastly.net
2.6.2 Stack Overflow 访问优化
104.18.32.7 stackoverflow.com

3. 注意事项与最佳实践

3.1 应用程序代理支持

  • 重要:部分应用程序有独立的代理配置,不会读取系统环境变量
  • 这类应用需要在其配置文件或设置界面中单独配置代理
  • 常见例子:浏览器、IDE、某些命令行工具等

3.2 协议限制与兼容性

  • 重要:ping 命令使用 ICMP 协议(网络层),不会使用 HTTP 代理
  • 不同协议需要对应的代理类型:
    • HTTP/HTTPS 代理:用于网页访问、API调用等
    • SOCKS5 代理:支持更多协议,包括TCP、UDP等
    • 网络层协议(如ICMP、ARP)不支持应用层代理

3.3 配置持久化

  • Windows:环境变量在 PowerShell 会话结束后失效,需要添加到系统环境变量
  • macOS/Linux:将 export 命令添加到 ~/.bashrc~/.zshrc 文件中
http://www.dtcms.com/a/264282.html

相关文章:

  • 单元测试详解
  • AKAZE(Accelerated-KAZE)图像特征点检测算法详解和C++代码实现示例
  • 6.2 实现文档加载和切分和简易向量数据库的功能
  • 【在 FastAdmin 中取消特定字段的搜索功能】
  • Conda 虚拟环境克隆与 PyCharm 配置教程
  • 高阶数据结构------并查集
  • uniapp+vue3 中使用echart 以及echart文件过大需要分包的记录
  • 吸烟行为检测数据集介绍-2,108张图片 公共场所禁烟监控 健康行为研究
  • SpringCloud系列(45)--SpringCloud Bus简介
  • UE5 - 制作《塞尔达传说》中林克的技能 - 18 - 磁力抓取器
  • 强化学习【chapter0】-学习路线图
  • Java Selenium反爬虫技术方案
  • 07 Springboot+netty+mqtt服务端实现【重构】
  • 数据结构之带头双向循环链表
  • 苍穹外卖系列问题之Day11_05营业额统计代码开发2 StringUtils.join(dateList,“,“)报错
  • Cross-modal Information Flow in Multimodal Large Language Models
  • 【1.6 漫画数据库设计实战 - 从零开始设计高性能数据库】
  • 2025年主流大厂Java后端面试题主题深度解析
  • 推客系统小程序终极指南:从0到1构建自动裂变增长引擎,实现业绩10倍增长!
  • 快速手搓一个MCP服务指南(九): FastMCP 服务器组合技术:构建模块化AI应用的终极方案
  • 【大模型学习 | BLIP2原理】
  • 「Java流程控制」for循环结构
  • langchain从入门到精通(三十二)——RAG优化策略(八)自查询检索器实现动态数据过滤
  • 腾讯 iOA 零信任产品:安全远程访问的革新者
  • Redis-渐进式遍历
  • Java后端调用外部接口标准流程详解
  • python+uniapp基于微信小程序的PS社区系统
  • 使用D435i运行ORB-SLAM3时,纯视觉模式与视觉-惯性模式的位姿矩阵定义问题探讨
  • 基于SpringBoot + HTML 的网上书店系统
  • 转录组分析流程(六):列线图