support change tun interface name (#151)

This commit is contained in:
yylt
2024-07-03 15:41:12 +08:00
committed by GitHub
parent 34f832bbad
commit 0f39bfcefa
3 changed files with 8 additions and 0 deletions

View File

@@ -150,6 +150,8 @@ pub struct VpnPortalConfig {
pub struct Flags {
#[derivative(Default(value = "\"tcp\".to_string()"))]
pub default_protocol: String,
#[derivative(Default(value = "\"tun\".to_string()"))]
pub dev_name: String,
#[derivative(Default(value = "true"))]
pub enable_encryption: bool,
#[derivative(Default(value = "true"))]

View File

@@ -172,6 +172,9 @@ and the vpn client is in network of 10.14.14.0/24"
#[arg(long, help = "do not use ipv6", default_value = "false")]
disable_ipv6: bool,
#[arg(long, help = "interface name", default_value = "tun")]
dev_name: String,
#[arg(
long,
help = "mtu of the TUN device, default is 1420 for non-encryption, 1400 for encryption"
@@ -424,6 +427,7 @@ impl From<Cli> for TomlConfigLoader {
f.enable_encryption = !cli.disable_encryption;
f.enable_ipv6 = !cli.disable_ipv6;
f.latency_first = cli.latency_first;
f.dev_name = cli.dev_name;
if let Some(mtu) = cli.mtu {
f.mtu = mtu;
}

View File

@@ -273,6 +273,8 @@ impl VirtualNic {
#[cfg(target_os = "linux")]
{
let dev_name = self.global_ctx.get_flags().dev_name;
config.name(format!("{}{}", dev_name, 0));
config.platform(|config| {
// detect protocol by ourselves for cross platform
config.packet_information(false);