网络基础知识
OSI七层模型与协议对应
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地址的转换
- ping命令 使用ICMP协议,属于网络层,不会使用HTTP代理
- TCP/UDP 是传输层协议,为上层应用提供不同的传输服务
代理
操作系统配置差异
不同操作系统的代理配置方式略有不同:
操作系统 | 配置方式 | 语法格式 |
---|---|---|
Linux/macOS | 环境变量 export | export http_proxy=address |
Windows | PowerShell 环境变量 | $env:http_proxy="address" |
Windows | CMD 环境变量 | set http_proxy=address |
代理配置详解
以下以 Linux/macOS 为主要示例:
基本配置
# 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"
代理认证配置
如果代理服务器需要认证,格式为:
# 带认证的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
代理测试
基本连通性测试
# 测试代理是否生效
curl https://ipinfo.io/ip# 详细测试(显示连接过程)
curl -v http://www.google.com
指定代理测试
# 使用 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
环境变量配置
# Hugging Face 镜像
export HF_ENDPOINT="https://hf-mirror.com"
DNS/hosts 文件配置
编辑 /etc/hosts
(Linux/macOS)或 C:\Windows\System32\drivers\etc\hosts
(Windows):
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
Stack Overflow 访问优化
104.18.32.7 stackoverflow.com
注意事项
应用程序代理支持
- 重要:部分应用程序有独立的代理配置,不会读取系统环境变量
- 这类应用需要在其配置文件或设置界面中单独配置代理
- 常见例子:浏览器、IDE、某些命令行工具等
协议限制
- 重要:ping 命令走的是 ICMP 协议,不会使用 HTTP 代理
- 不同协议需要对应的代理类型:HTTP/HTTPS 代理用于网页访问,SOCKS5 代理支持更多协议
配置持久化
- Windows:环境变量在 PowerShell 会话结束后失效,需要添加到系统环境变量
- macOS/Linux:将 export 命令添加到
~/.bashrc
或~/.zshrc
文件中