当前位置: 首页 > 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.lryc.cn/news/578779.html

相关文章:

  • BFD故障检测技术之概述
  • 隔离网络(JAVA)
  • 2025年7月最新英雄联盟战绩自动查询工具
  • sqlmap学习笔记ing(2.[第一章 web入门]SQL注入-2(报错,时间,布尔))
  • 应急响应类题练习——玄机第四章 windows实战-emlog
  • 快速手搓一个MCP服务指南(九): FastMCP 服务器组合技术:构建模块化AI应用的终极方案
  • Spring Boot 启动加载执行链路分析
  • [Python 基础课程]字符串
  • 深度学习常见的激活函数
  • [创业之路-458]:企业经营层 - 蓝海战略 - 重构价值曲线、整合产业要素、创造新需求
  • 复现一个nanoGPT——model.py
  • Android屏幕共享+WebSocket实现传输截图
  • uniapp选择相册
  • 学习字符串
  • 菜谱大全——字符串处理艺术:从文本解析到高效搜索 [特殊字符][特殊字符]
  • LL面试题11
  • 【Python】numpy数组常用数据处理(测试代码+api例程)
  • Web前端之JavaScript实现图片圆环、圆环元素根据角度指向圆心、translate、rotate
  • vue-34(单元测试 Vue 组件的介绍)
  • 第六章 OpenCV篇—傅里叶变换与直方图
  • 通过http调用来访问neo4j时报错,curl -X POST 执行指令报错
  • 2025 推理技术风向标:DeepSeek-R1 揭示大模型从 “记忆” 到 “思考” 的进化路径
  • 8.Docker镜像讲解
  • 【读代码】百度开源大模型:ERNIE项目解析
  • 1.MySQL之如何定位慢查询
  • Python应用指南:利用高德地图API获取公交+地铁可达圈(三)
  • 达梦数据库配置SYSDBA本地免密登录
  • 怎么查看Android设备中安装的某个apk包名和启动页activity
  • CSS 安装使用教程
  • 【Python基础】11 Python深度学习生态系统全景解析:从基础框架到专业应用的技术深度剖析(超长版,附多个代码及结果)