知识 Wiki 总览 / VPN
隧道与封装
更新于 2026-11-07条目链接
隧道技术把一种网络报文放入另一种可在底层网络传输的报文中。VPN 客户端先依据路由把内层 IP 报文交给虚拟接口,再按 VPN 协议加密或认证并封装,最后由外层 IP 报文经互联网送到隧道对端。对端验证、解封装后,继续处理内层流量。
内层与外层
- 内层报文:应用实际访问的源地址、目标地址和传输层内容。
- 外层报文:把 VPN 客户端和服务端作为网络端点,在公共网络上传递。
- 虚拟接口:操作系统用它表示隧道内的 IP 地址和路由。
封装和认证标签占用额外字节,因此隧道内可传输的最大报文尺寸通常小于底层链路的 MTU。IPsec 的隧道模式与传输模式有不同的封装边界;WireGuard 和 OpenVPN 也使用各自的隧道数据格式。详见MTU 与 MSS。
跨平台观察报文
以下示例仅用于在自己管理的设备上核对隧道外层 UDP 流量。将端口替换为实际配置;抓包可能包含地址和通信元数据,分享前应清理敏感信息。
Windows
pktmon filter add vpn-tunnel -p 51820
pktmon start --capture --comp nics --pkt-size 0 --file-name vpn.etl
pktmon stop
pktmon etl2pcap vpn.etl --out vpn.pcapng
macOS
sudo tcpdump -ni en0 'udp port 51820'
Linux
sudo tcpdump -ni eth0 'udp port 51820'
sudo tcpdump -ni wg0
物理接口上通常可观察外层目标地址和 VPN 传输协议;隧道虚拟接口上可观察解封装后的内层 IP 头。抓到 UDP 包只说明报文经过接口,不单独证明认证、加密或远端访问策略正确。
参考资料
RFC 4301:IPsec 安全架构;WireGuard 官方快速入门;Microsoft Learn:Pktmon 命令格式。
