OSI 七层网络模型
- 物理层
概念:负责物理介质上的数据传输
单位:比特(Bits)
实例:网线,Wi-Fi,光猫
- 数据链路层
概念:负责节点之间的可靠数据传输,包括对数据的封装、Mac 地址的管理以及检测和纠正物理层可能引入的错误,并且将物理层的原始信号打包成帧传输
单位:帧(Frames)
实例:Mac 地址,交换机,PPP协议(点对点协议)
- 网络层
概念:负责跨网络的路由选择和逻辑地址的管理。决定数据如何从一个节点传送到另一个节点,跨越多个网络,通过IP地址来标识源和目标
单位:数据包(Packets)
实例:IP 协议,路由器,ICMP 协议,ARP 协议
- 传输层
概念:负责端到端的数据传输,并提供可靠的传输机制(如重传、流量控制)
单位:段(Segments)或数据报(Datagrams)
实例:TCP、UDP、TLS/SSL
- 会话层
概念:负责建立、管理和终止会话
单位:数据流(Data Streams)
实例:PPTP、RPC、NetBIOS
- 表示层
概念:负责数据的表示和转换
单位:格式化数据
实例:JPEG、MPEG
- 应用层
概念:负责为用户与应用程序之间提供直接的网络服务接口
单位:报文(Message)
实例:HTTP、FTP、SMTP、DNS
HTTP
HTTP 请求方式
- GET
用于从服务器获取数据。请求参数一般附加在 URL 上,适合获取静态资源或查询操作
- POST
用于向服务器发送数据(如表单提交、上传文件等),数据通常放在请求体中,适合需要对服务器进行修改或提交数据的操作
- HEAD
与 GET 类似,但只请求响应的头部,不返回实际数据体。用于检查资源是否存在或资源的元数据信息
- PUT
用于上传资源到服务器。通常用于更新一个已有资源,如果资源不存在,则会创建该资源
- DELETE
用于删除服务器上的资源
- PATCH
与 PUT 类似,但用于对资源进行部分更新,而不是整个替换
- OPTIONS
用于请求服务器支持的通信选项,常用于 CORS(跨域资源共享)请求中,查看服务器允许哪些 HTTP 方法
- CONNECT
启动一个到服务器的双向通信通道,一般用于代理服务器或隧道(如 HTTPS 的 TLS/SSL 连接)
- TRACE
用于回显服务器收到的请求,主要用于调试,帮助开发者查看请求在服务器之间传输时是否被修改
网络协议
- APIPA
Automatic Private IP Addressing,自动私有 IP 地址分配。当基于 TCP/IP 协议栈的设备多次广播请求 DHCP 服务无果时,会自动给设备分配形如 169.254.x.x/16 的 IP 地址,以确保局域网内的设备可相互通信
- ARP
Address Resolution Protocol,地址解析协议。用于在局域网中将 IP 地址 转换为 MAC 地址。由于局域网中设备通信依赖 MAC 地址,因此需要此协议将已知的 IP 地址转换为 MAC 地址
- DHCP
Dynamic Host Configuration Protocal,动态主机配置协议。用于在网络中自动分配 IP 地址和其他网络配置信息的协议。它广泛用于局域网中,简化了设备的网络配置流程
VPN
代理协议
- Shadowsocks
- Vmess
- Vless
- Trojan
VPN 协议
- OpenVPN
- WireGuard
- IPSec
- L2TP
局域网设备共享
代理共享
指定已科学设备为代理服务器。缺点:需要多次设置平;部分客户端不支持;无法接管所有流量
- Clash:打开局域网共享功能
- Shadowrocket:设置 - 隧道 - 代理 - 共享代理
网关共享(透明代理)
指定已科学设备为网关以及 DHCP 服务器,可在路由器上设置,一步到位。缺点:部分服务端不支持
- Linux/Unix-like(不包括 Windows):Clash 打开Tunnel 模式 - 路由器指定该设备为 DHCP 服务器
路由共享
共享网卡至局域网其他设备。缺点:多一层 NAT;部分服务端不支持
- Windows:Clash 打开 Tunnel 模式 - 共享此网卡
- Android:打开 VPN 共享(需 root)
端口
Name
Protocol
Port
Used for
具体软件/服务
Moonlight
- 配置
- 任务管理器
允许 Sunshine / NVIDIA 的服务
- Windows Defender
允许 Sunshine / NvContainer
C:\Program Files\NVIDIA Corporation\NvContainer\nvcontainer.exe
- 放行端口
# 以管理员模式运行 start-process PowerShell -verb runas
# GameStream netsh advfirewall firewall add rule name="GameStream TCP" dir=in protocol=tcp localport=47984,47989,48010 action=allow netsh advfirewall firewall add rule name="GameStream UDP" dir=in protocol=udp localport=5353,47998-48010 action=allow
# Sunshine netsh advfirewall firewall add rule name="Sunshine UDP" dir=in protocol=udp localport=47998-48000 action=allow netsh advfirewall firewall add rule name="Sunshine TCP" dir=in protocol=tcp localport=47984,47989,47990,48010 action=allow
- Wake-on-lan
- Bios 设置
高级 → 高级电源管理(APM) → Power On By PCI-E
- 配置网卡驱动
ncpa.cpl
网卡 → 属性 → 配置 → 高级 → 魔术封包唤醒
电源管理 → 允许此设备唤醒计算机
- 电源设置
control powercfg.cpl
启用快速启动
Tailscale
- On OpenWrt
- 安装
opkg update opkg install tailscale
- 配置接口
- 网络 -> 防火墙 -> 添加Tailscale -> 全部接受 -> 勾选IP动态伪装和MSS钳制 -> 允许转发到目标区域:lan,wan -> 允许来自源区域的转发:lan
- 网络 -> 接口 -> 添加Tailscale -> 不配置协议 -> 设备:tailscale0 -> 防火墙:Tailscale
- 配置 Tailscale
tailscale up --advertise-routes="Your IP Address"\ --accept-routes\ --advertise-exit-node\ --accept-dns=false
- On Mac OS
- 从 App Store 安装 Tailscale
- 配置环境变量
echo 'export PATH="/Applications/Tailscale.app/Contents/MacOS:$PATH"' >> .zshrc source .zshrc
