From 590721a4da27845f0b05a8f9752a869d8394657f Mon Sep 17 00:00:00 2001 From: lubeilin <1791778603@qq.com> Date: Sun, 3 Mar 2024 18:31:19 +0800 Subject: [PATCH] =?UTF-8?q?[mio]=20=E9=BB=98=E8=AE=A4=E7=BD=91=E5=8D=A1?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=94=B9=E4=B8=BAvnt-tun/tap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnt/src/tun_tap_device/mod.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/vnt/src/tun_tap_device/mod.rs b/vnt/src/tun_tap_device/mod.rs index 34993ba..100412a 100644 --- a/vnt/src/tun_tap_device/mod.rs +++ b/vnt/src/tun_tap_device/mod.rs @@ -6,17 +6,23 @@ use tun::Device; use crate::core::Config; -const DEFAULT_NAME: &str = "vnt0"; +const DEFAULT_TUN_NAME: &str = "vnt-tun"; +const DEFAULT_TAP_NAME: &str = "vnt-tap"; pub fn create_device(config: &Config) -> io::Result> { + let default_name: &str = if config.tap { + DEFAULT_TAP_NAME + } else { + DEFAULT_TUN_NAME + }; #[cfg(target_os = "linux")] let device = { let device_name = config .device_name .clone() - .unwrap_or(DEFAULT_NAME.to_string()); - if &device_name == DEFAULT_NAME { - delete_device(); + .unwrap_or(default_name.to_string()); + if &device_name == default_name { + delete_device(default_name); } Arc::new(Device::new(Some(device_name), config.tap)?) }; @@ -27,7 +33,7 @@ pub fn create_device(config: &Config) -> io::Result> { config .device_name .clone() - .unwrap_or(DEFAULT_NAME.to_string()), + .unwrap_or(default_name.to_string()), config.tap, )?); #[cfg(target_os = "android")] @@ -47,10 +53,10 @@ pub fn create_device(config: &Config) -> io::Result> { } #[cfg(target_os = "linux")] -fn delete_device() { +fn delete_device(name: &str) { // 删除默认网卡,此操作有风险,后续可能去除 use std::process::Command; - let cmd = format!("ip link delete {}", DEFAULT_NAME); + let cmd = format!("ip link delete {}", name); let delete_tun = Command::new("sh") .arg("-c") .arg(&cmd)