網絡基礎知識
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
文件中