首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“非常高”(可能吗?)MTU在有线接口上自动设置

“非常高”(可能吗?)MTU在有线接口上自动设置
EN

Server Fault用户
提问于 2022-11-18 16:43:13
回答 1查看 1.8K关注 0票数 2

因此,我在上运行了一个VPS,并在上面安装了wireguard;我以这种方式设置了一个接口:

代码语言:javascript
复制
[Interface]
Address = 10.255.128.1/24
MTU = 1420
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = ********************************************

然后发生了一件非常奇怪的事情:我把iface打开并运行sudo ip addr,然后得到这个输出

代码语言:javascript
复制
3: wg0:  mtu 8921 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 10.255.128.1/24 scope global wg0
       valid_lft forever preferred_lft forever

奇怪的事?看看mtu 8921

然后我转到conf文件,让我惊讶的是,我为mtu设置的值被8921覆盖。

sudo systemctl status wg-quick@wg0.service给出了这个输出:

代码语言:javascript
复制
Nov 18 16:04:08 ip-172-26-0-77 systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
Nov 18 16:04:08 ip-172-26-0-77 wg-quick[583]: [#] ip link add wg0 type wireguard
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] wg setconf wg0 /dev/fd/63
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] ip -4 address add 10.255.128.1/24 dev wg0
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] ip link set mtu 8921 up dev wg0
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING >
Nov 18 16:04:09 ip-172-26-0-77 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

这里发生了什么事?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-11-21 23:06:29

当接口关闭(或重新启动)时,SaveConfig = true指示wg-快速用接口的当前设置覆盖WireGuard接口的配置文件。对于WireGuard的许多使用来说,这都是不可取的行为,这就是为什么默认情况下它没有打开的原因。要打开它的最常见的原因是,如果在活动WireGuard接口运行时频繁进行更改,并且不想在配置文件中手动重复这些更改。

如果您确实使用了SaveConfig = true,并且希望对WireGuard接口进行更改,您通常会通过wg命令(针对特定于C3的设置)或(在Linux上) ip地址命令(用于一般的网络接口设置)进行更改。

例如,要将名为WireGuard的active wg0接口的MTU设置为1420,请运行以下命令(作为root):

代码语言:javascript
复制
ip link set wg0 mtu 1420

或者,使用WireGuard命令关闭wg-quick down wg0接口(如果您将其作为systemd服务运行,则关闭systemctl stop wg-quick@wg0 ),对WireGuard配置文件进行更改,然后使用wg-quick up wg0命令(或systemctl start wg-quick@wg0)再次启动接口。

如果您没有显式地为WireGuard接口配置MTU,wg-腿非常聪明,可以根据(物理)网络接口的MTU对隧道的使用进行很好的猜测。大多数EC2实例的网络接口使用的是巨型框架 (MTU = 9001)。因此,在这些EC2实例上,wg-Quick将猜测WireGuard接口应该使用8921的MTU (比9001小80个字节,以允许用UDP/IP和WireGuard报头包装每个数据包)。

因此,可能发生的情况是,您最初使用SaveConfig = true配置了D13接口,但没有配置MTU。当您用wg快速启动接口时,它为接口设置了一个MTU为8921。然后,在接口打开时,编辑WireGuard配置文件以添加MTU = 1420。当您重新启动接口时,您的更改将被现有的MTU覆盖。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1116070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档