mirror of
https://github.com/EasyTier/EasyTier.git
synced 2024-11-16 11:42:27 +08:00
Add TUN device name setting support to easytier-gui
This commit is contained in:
parent
92397bf7b6
commit
0b927bcc91
|
@ -13,6 +13,7 @@ proxy_cidrs: 子网代理CIDR
|
||||||
enable_vpn_portal: 启用VPN门户
|
enable_vpn_portal: 启用VPN门户
|
||||||
vpn_portal_listen_port: 监听端口
|
vpn_portal_listen_port: 监听端口
|
||||||
vpn_portal_client_network: 客户端子网
|
vpn_portal_client_network: 客户端子网
|
||||||
|
dev_name: TUN接口名称
|
||||||
advanced_settings: 高级设置
|
advanced_settings: 高级设置
|
||||||
basic_settings: 基础设置
|
basic_settings: 基础设置
|
||||||
listener_urls: 监听地址
|
listener_urls: 监听地址
|
||||||
|
@ -45,6 +46,7 @@ enable_auto_launch: 开启开机自启
|
||||||
exit: 退出
|
exit: 退出
|
||||||
chips_placeholder: 例如: {0}, 按回车添加
|
chips_placeholder: 例如: {0}, 按回车添加
|
||||||
hostname_placeholder: '留空默认为主机名: {0}'
|
hostname_placeholder: '留空默认为主机名: {0}'
|
||||||
|
dev_name_placeholder: 注意:当多个网络同时使用相同的TUN接口名称时,将会在设置TUN的IP时产生冲突,留空以自动生成随机名称
|
||||||
off_text: 点击关闭
|
off_text: 点击关闭
|
||||||
on_text: 点击开启
|
on_text: 点击开启
|
||||||
show_config: 显示配置
|
show_config: 显示配置
|
||||||
|
|
|
@ -13,6 +13,7 @@ proxy_cidrs: Subnet Proxy CIDRs
|
||||||
enable_vpn_portal: Enable VPN Portal
|
enable_vpn_portal: Enable VPN Portal
|
||||||
vpn_portal_listen_port: VPN Portal Listen Port
|
vpn_portal_listen_port: VPN Portal Listen Port
|
||||||
vpn_portal_client_network: Client Sub Network
|
vpn_portal_client_network: Client Sub Network
|
||||||
|
dev_name: TUN interface name
|
||||||
advanced_settings: Advanced Settings
|
advanced_settings: Advanced Settings
|
||||||
basic_settings: Basic Settings
|
basic_settings: Basic Settings
|
||||||
listener_urls: Listener URLs
|
listener_urls: Listener URLs
|
||||||
|
@ -46,6 +47,7 @@ exit: Exit
|
||||||
use_latency_first: Latency First Mode
|
use_latency_first: Latency First Mode
|
||||||
chips_placeholder: 'e.g: {0}, press Enter to add'
|
chips_placeholder: 'e.g: {0}, press Enter to add'
|
||||||
hostname_placeholder: 'Leave blank and default to host name: {0}'
|
hostname_placeholder: 'Leave blank and default to host name: {0}'
|
||||||
|
dev_name_placeholder: 'Note: When multiple networks use the same TUN interface name at the same time, there will be a conflict when setting the TUN''s IP. Leave blank to automatically generate a random name.'
|
||||||
off_text: Press to disable
|
off_text: Press to disable
|
||||||
on_text: Press to enable
|
on_text: Press to enable
|
||||||
show_config: Show Config
|
show_config: Show Config
|
||||||
|
|
|
@ -61,6 +61,8 @@ struct NetworkConfig {
|
||||||
listener_urls: Vec<String>,
|
listener_urls: Vec<String>,
|
||||||
rpc_port: i32,
|
rpc_port: i32,
|
||||||
latency_first: bool,
|
latency_first: bool,
|
||||||
|
|
||||||
|
dev_name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl NetworkConfig {
|
impl NetworkConfig {
|
||||||
|
@ -163,6 +165,7 @@ impl NetworkConfig {
|
||||||
}
|
}
|
||||||
let mut flags = Flags::default();
|
let mut flags = Flags::default();
|
||||||
flags.latency_first = self.latency_first;
|
flags.latency_first = self.latency_first;
|
||||||
|
flags.dev_name = self.dev_name.clone();
|
||||||
cfg.set_flags(flags);
|
cfg.set_flags(flags);
|
||||||
Ok(cfg)
|
Ok(cfg)
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,7 @@ onMounted(async () => {
|
||||||
<label for="network_secret">{{ t('network_secret') }}</label>
|
<label for="network_secret">{{ t('network_secret') }}</label>
|
||||||
<InputText
|
<InputText
|
||||||
id="network_secret" v-model="curNetwork.network_secret"
|
id="network_secret" v-model="curNetwork.network_secret"
|
||||||
aria-describedby=" network_secret-help"
|
aria-describedby="network_secret-help"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -278,11 +278,21 @@ onMounted(async () => {
|
||||||
<div class="flex flex-column gap-2 basis-5/12 grow">
|
<div class="flex flex-column gap-2 basis-5/12 grow">
|
||||||
<label for="rpc_port">{{ t('rpc_port') }}</label>
|
<label for="rpc_port">{{ t('rpc_port') }}</label>
|
||||||
<InputNumber
|
<InputNumber
|
||||||
id="rpc_port" v-model="curNetwork.rpc_port" aria-describedby="username-help"
|
id="rpc_port" v-model="curNetwork.rpc_port" aria-describedby="rpc_port-help"
|
||||||
:format="false" :min="0" :max="65535"
|
:format="false" :min="0" :max="65535"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-row gap-x-9 flex-wrap">
|
||||||
|
<div class="flex flex-column gap-2 basis-5/12 grow">
|
||||||
|
<label for="dev_name">{{ t('dev_name') }}</label>
|
||||||
|
<InputText
|
||||||
|
id="dev_name" v-model="curNetwork.dev_name" aria-describedby="dev_name-help" :format="true"
|
||||||
|
:placeholder="t('dev_name_placeholder')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
|
|
|
@ -131,8 +131,16 @@ const myNodeInfoChips = computed(() => {
|
||||||
if (!my_node_info)
|
if (!my_node_info)
|
||||||
return chips
|
return chips
|
||||||
|
|
||||||
// virtual ipv4
|
// TUN Device Name
|
||||||
|
const dev_name = curNetworkInst.value.detail?.dev_name
|
||||||
|
if (dev_name) {
|
||||||
|
chips.push({
|
||||||
|
label: `TUN Device Name: ${dev_name}`,
|
||||||
|
icon: '',
|
||||||
|
} as Chip)
|
||||||
|
}
|
||||||
|
|
||||||
|
// virtual ipv4
|
||||||
chips.push({
|
chips.push({
|
||||||
label: `Virtual IPv4: ${my_node_info.virtual_ipv4}`,
|
label: `Virtual IPv4: ${my_node_info.virtual_ipv4}`,
|
||||||
icon: '',
|
icon: '',
|
||||||
|
|
|
@ -32,6 +32,8 @@ export interface NetworkConfig {
|
||||||
listener_urls: string[]
|
listener_urls: string[]
|
||||||
rpc_port: number
|
rpc_port: number
|
||||||
latency_first: boolean
|
latency_first: boolean
|
||||||
|
|
||||||
|
dev_name: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export function DEFAULT_NETWORK_CONFIG(): NetworkConfig {
|
export function DEFAULT_NETWORK_CONFIG(): NetworkConfig {
|
||||||
|
@ -64,6 +66,7 @@ export function DEFAULT_NETWORK_CONFIG(): NetworkConfig {
|
||||||
],
|
],
|
||||||
rpc_port: 0,
|
rpc_port: 0,
|
||||||
latency_first: true,
|
latency_first: true,
|
||||||
|
dev_name: '',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +80,7 @@ export interface NetworkInstance {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface NetworkInstanceRunningInfo {
|
export interface NetworkInstanceRunningInfo {
|
||||||
|
dev_name: string
|
||||||
my_node_info: NodeInfo
|
my_node_info: NodeInfo
|
||||||
events: Record<string, any>
|
events: Record<string, any>
|
||||||
node_info: NodeInfo
|
node_info: NodeInfo
|
||||||
|
|
|
@ -267,6 +267,7 @@ impl Drop for EasyTierLauncher {
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize, Debug)]
|
#[derive(Deserialize, Serialize, Debug)]
|
||||||
pub struct NetworkInstanceRunningInfo {
|
pub struct NetworkInstanceRunningInfo {
|
||||||
|
pub dev_name: String,
|
||||||
pub my_node_info: MyNodeInfo,
|
pub my_node_info: MyNodeInfo,
|
||||||
pub events: Vec<(DateTime<Local>, GlobalCtxEvent)>,
|
pub events: Vec<(DateTime<Local>, GlobalCtxEvent)>,
|
||||||
pub node_info: MyNodeInfo,
|
pub node_info: MyNodeInfo,
|
||||||
|
@ -306,6 +307,7 @@ impl NetworkInstance {
|
||||||
let peer_route_pairs = list_peer_route_pair(peers.clone(), routes.clone());
|
let peer_route_pairs = list_peer_route_pair(peers.clone(), routes.clone());
|
||||||
|
|
||||||
Some(NetworkInstanceRunningInfo {
|
Some(NetworkInstanceRunningInfo {
|
||||||
|
dev_name: self.config.get_flags().dev_name.clone(),
|
||||||
my_node_info: launcher.get_node_info(),
|
my_node_info: launcher.get_node_info(),
|
||||||
events: launcher.get_events(),
|
events: launcher.get_events(),
|
||||||
node_info: launcher.get_node_info(),
|
node_info: launcher.get_node_info(),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user