From 3cd19dbc1fc225adc6d6cdd82a021db9bc6ba0a3 Mon Sep 17 00:00:00 2001 From: lubeilin <1791778603@qq.com> Date: Sun, 27 Aug 2023 14:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4mtu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnt-cli/README.md | 2 +- vnt-cli/src/main.rs | 2 +- vnt/src/core/mod.rs | 13 ++++++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/vnt-cli/README.md b/vnt-cli/README.md index 72c7914..c59bde3 100644 --- a/vnt-cli/README.md +++ b/vnt-cli/README.md @@ -43,7 +43,7 @@ ### -u `` -设置虚拟网卡的mtu值,大多数情况下使用默认值效率会更高,也可根据实际情况微调这个值,默认值为1430 +设置虚拟网卡的mtu值,大多数情况下使用默认值效率会更高,也可根据实际情况微调这个值,不加密默认为1430,加密默认为1410 ### --tcp 和服务端使用tcp通信。有些网络提供商对UDP限制比较大,这个时候可以选择使用TCP模式,提高稳定性。一般来说udp延迟和消耗更低 diff --git a/vnt-cli/src/main.rs b/vnt-cli/src/main.rs index babc697..6cfa7b2 100644 --- a/vnt-cli/src/main.rs +++ b/vnt-cli/src/main.rs @@ -435,7 +435,7 @@ fn print_usage(program: &str, _opts: Options) { println!(" -w 使用该密码生成的密钥对客户端数据进行加密,并且服务端无法解密,使用相同密码的客户端才能通信"); println!(" -W 加密当前客户端和服务端通信的数据,请留意服务端指纹是否正确"); println!(" -m 模拟组播,默认情况下组播数据会被当作广播发送,开启后会模拟真实组播的数据发送"); - println!(" -u 自定义mtu(默认为1430)"); + println!(" -u 自定义mtu(不加密默认为1430,加密默认为1410)"); println!(" --tcp 和服务端使用tcp通信,默认使用udp,遇到udp qos时可指定使用tcp"); println!(" --ip 指定虚拟ip,指定的ip不能和其他设备重复,必须有效并且在服务端所属网段下,默认情况由服务端分配"); println!(" --relay 仅使用服务器转发,不使用p2p,默认情况允许使用p2p"); diff --git a/vnt/src/core/mod.rs b/vnt/src/core/mod.rs index 1b345fe..a97c010 100644 --- a/vnt/src/core/mod.rs +++ b/vnt/src/core/mod.rs @@ -147,7 +147,18 @@ impl VntUtil { } tun_tap_device::DeviceType::Tun }; - let mtu = self.config.mtu.unwrap_or(1430); + let mtu = match self.config.mtu { + None => { + if self.config.password.is_none(){ + 1430 + }else{ + 1410 + } + } + Some(mtu) => { + mtu + } + }; let in_ips = self.config.in_ips.iter().map(|(dest, mask, _)| { (Ipv4Addr::from(*dest & *mask), Ipv4Addr::from(*mask)) }).collect::>(); let (device_writer, device_reader, driver_info) = tun_tap_device::create_device(device_type, response.virtual_ip,