惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
Recorded Future
Recorded Future
T
Tenable Blog
S
Securelist
C
CERT Recently Published Vulnerability Notes
T
Threatpost
S
Schneier on Security
A
Arctic Wolf
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Register - Security
The Register - Security
Cisco Talos Blog
Cisco Talos Blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
T
True Tiger Recordings
T
Threat Research - Cisco Blogs
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
T
The Exploit Database - CXSecurity.com
小众软件
小众软件
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tor Project blog
Spread Privacy
Spread Privacy
Malwarebytes
Malwarebytes
P
Proofpoint News Feed
F
Fox-IT International blog
F
Fortinet All Blogs
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
量子位
Latest news
Latest news
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
Project Zero
Project Zero
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
I
Intezer
博客园_首页
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Darknet – Hacking Tools, Hacker News & Cyber Security

WireGuard

小火箭开启包括所有网络后, wg 失效 Wireguard For Windows 五年来首次推送了更新 跨省跨运营商, wireguard 丢包。wireguard 能否丢包自动重发 请教一个使用 WireGuard 后速度下降的问题 WireGuard 又可以用了??! Wireguard 为什么容易就断了?手动换 endpoint 非常麻烦 wg 会被 isp 搞了? Wirguard IPv6 过墙会被阻断吗 Wireguard 端点地址如何避免自动切换? wg-easy 4 天前更新了,支持 IPV6 了。 wireguard 客户端路由 ip 分流问题 wireguard 内网通讯的延迟大概是多少 家有公网 IP,如何在宿舍开放端口跟朋友联机? wireguard 一点小技巧发现 WireGuard 的 udp 从国外穿透回来是不是会被阻断,现在用 frp 的 quic 一年多了很稳定,不知道要不要换 WireGuard frp 配合 wireguard 稳定吗? 阿里云中转 Wireguard 回家问题 wg-easy 有流量通过但是无法访问内网 请教 tailscale 直连问题 两地的 Wireguard 在 Wi-Fi 下无法连接,但是在蜂窝网络下却可以,这是为什么? Wireguard 自动重连的问题 Wireguard 同时使用多台 iOS/Mac 设备通过 Surge 连接的问题 wireguard 国内都不行了? wireguard 配置 clash.meta 连接 wireguard 回家访问局域网不通 请教一个 wireguard 的奇怪问题 用 wg 连回家相对于 ss/vmess 有什么优势吗 家宽用 Wireguard 被封了 问个问题, wireguard 组网成功后,如何设置通过域名互相访问指定设备? 握手成功,但是只能单向 ping 通 不是程序员,不太懂 wireguard 的机制 请教个 wireguard 的问题 Wireguard 的 allowIPS 问题 DDNS 域名连家里的 WireGuard 会被运营商知道是通过域名访问的吗? 关于 Wireguard 设置 Address /24 /33 疑问 快速部署 wireguard 的最佳实践是? wireguard 能访问局域网但是不能访问本机 用 wireguard 组网跨境使用,如何实现境内外分流,现在通过 gre 隧道打通,所有的流量都走境外了,导致境内业务访问就比较慢了 如何调试 WireGuard 内核模块 我的笔记本使用 wireguard 正常连接家里内网 ip,却没有办法使用家里的 dns。 wireguard 运行在 layer4 会造成很大的性能损耗? 免费 WireGuard 节点 简直是丧心病狂,连 wireguard 官网也 TM 的 DNS 污染,日了狗了! WireGuard 的 docker 容器如何为局域网做代理 wiregaurd 打洞同 nat3 需要打洞很长时间,有个疑问和包大小数据发送间隔 wiregaurd 用命令启动的,但是我想实现配置文件里面的 Table = off 效果,失败 编译 wireguard 的安卓客户端遇到点问题,开发语言是 Kotlin unity web gl 中 上游路由不生效 netbird “心跳间隔”该填多少比较好?
WireGuard MTU 设置心得
mantouboji · 2023-11-22 · via WireGuard

最近几个月都在折腾 wireguard ,从之前的小盒子,变成了 RouterOS 7 内置,一些经验总结下来,MTU 参数的设置值得一提,写下来供参考:

首先要了解,wireguard 协议增加的开销是 16 字节头加 16 字节尾,一共 32 字节。

如果你的 wireguard 两端都是 IPv4 地址连接,一个包(假设长度为 x Bytes )到达对方的 wireguard 虚拟网卡之后:

  1. 加上 wireguard 的 header 和 authentication tag ,此时长度为 x + 32
  2. 加上 udp header ,此时长度为 x + 32 + 8
  3. 加上 IPv4 header ,此时长度为 x + 32 + 8 + 20 为了不丢包,应该有 x + 32 + 8 + 20 <= 1500 (以太网的 MTU ),得到 x <= 1440 ,所以 wireguard 的 MTU 最大可设置为 1440

如果我们是直接在两台 LAN 连接的电脑上架设 wireguard ,考虑到以太网卡的 MTU 是 1500, 这时候可以选择的 wireguard MTU 就是

1500 - 32 - 8 - 20 = 1440

如果是通过 PPPoE 上网的,本身 PPPoE 的协议开销会占掉 8 个字节,所以上述数据要再减 8 。

1500 - 32 - 8 - 8 = 1432

如果你中间使用了 IPv6 协议连接两端,因为 v6 的地址长,协议开销变大,这时候在以太网和 PPPoE 下的最大 MTU 分别成了

1500      - 32 - 8 - 40 = 1420
1500 - 8  - 32 - 8 - 40 = 1412

缺省情况下,Linux 的 wg-quick 脚本会按照使用了 IPv6 的最大包络,从系统中各个网卡的 MTU 找到一个最小的,减去 80, 作为缺省 MTU 。这也就是 Linux 上常见到 wireguard 接口的 MTU 是 1420 的缘故。

实质上你用这个在纯 v4 网络上是有一点浪费的,但无所谓了,更保险。

这个时候还应该想到:你在本地是 PPPoE 连接,但是你的海外 VPS 人家可是 LAN 连接,所以会发生你这里 1492-80=1412 人家那里 1500-80=1420 的情况。好在这个-80 是按照 IPv6 最大包罗万象来选的,对于 IPv4 线路而言还有足够的余量,不至于产生影响。

核心是承载 wireguard 流量的 UDP 数据包不能被分包。

但是为了安全起见,还是应该在两端的配置文件里都指定同一个 MTU 数值为好(这种情况下 1412 是一个合理的选择)。

因为 wireguard 是走 UDP 协议的,会受到运营商 QoS 策略的限制,一段时间后断线或者限流,于是出现了一些把 UDP 伪装成 TCP 的办法。这些办法的配置各有不同,但重点是:它们都会添加额外的协议开销字节数,减少了 wireguard 的有效 MTU ,所以在使用了这些手段之后,必须要减少 wireguard 接口 MTU 配置。

对于最常用的两种伪装手段而言,udp2raw 是 44 字节,phantun 是 12 字节。于是,在普通 PPPoE 宽带上使用的 wireguard 接口 MTU 就应该是 udp2raw : 1412 - 44 = 1368 phantun: 1412 - 12 = 1400

最后,更戏剧性的来了,笔者丧心病狂购买了所谓的"国际精品网",还是 PPPoE 拨号,然而 MTU 却大幅度缩水成了 1442, 被电信内部的网络白白吃掉了 50 个字节(恐怖的是 MTU 小了,MRU 还是 1492 )。那么可怜的 wireguard MTU 就变成了:

UDP:1442 - 32 - 8 - 40 = 1362

所以,这时候你就需要按照自己的情况,选择合适的 MTU ,保证网络畅通了。

在下有段时间心血来潮,想着既然 VPS 和本地都已经有 IPv6 地址,那么顺序切换 IPv4 和 IPv6 地址来建立 wireguard 连接应该是一个有希望的方案。然而当时没有仔细考虑这个 MTU 设置,设成 IPv6 连接后各种不舒服……

再加上发现精品网只是 IPv4 部分,IPv6 走的路由依旧是普通的 163 线路,延迟巨大,所以彻底打消了这个念头。

但如果你一直是用普通的 163 线路或者其他运营商,那倒是可以一试。163 线路的 PPPoE MTU 还是 1492 呢。

总结一下:

正常普通 PPPoE 宽带:1412 正常普通 PPPoE 宽带套 phantun: 1400

精品网: 1362 精品网套 phantun: 1350 像我一样的洁癖强迫症:1280 + 32 + 32 = 1344 (算是个整数?)