支持ipv6

This commit is contained in:
lubeilin
2023-09-02 23:57:32 +08:00
parent eec7d73ebe
commit 1a4e375dbf
13 changed files with 199 additions and 77 deletions
+2
View File
@@ -62,6 +62,8 @@
| `>=`8 | aes_gcm | AES256-GCM |
| 1~8位 | aes_cbc | AES128-CBC |
| `>=`8 | aes_cbc | AES256-CBC |
### --finger
开启数据指纹校验,可增加安全性,如果服务端开启指纹校验,则客户端也必须开启,开启会损耗一部分性能
### --relay
禁用p2p,在网络环境很差时,只使用服务器中转效果可能更好(可以配合--tcp参数一起使用)
+2 -1
View File
@@ -9,7 +9,8 @@ pub struct Info {
pub relay_server: String,
pub nat_type: String,
pub public_ips: String,
pub local_ip: String,
pub local_addr: String,
pub ipv6_addr: String,
}
#[derive(Serialize, Deserialize, Debug)]
+9 -3
View File
@@ -83,7 +83,7 @@ pub fn command_list(vnt: &Vnt) -> Vec<DeviceItem> {
let nat_type = format!("{:?}", nat_info.nat_type);
let public_ips: Vec<String> = nat_info.public_ips.iter().map(|v| v.to_string()).collect();
let public_ips = public_ips.join(",");
let local_ip = nat_info.local_ip.to_string();
let local_ip = nat_info.local_ipv4_addr.ip().to_string();
(nat_type, public_ips, local_ip)
} else {
("".to_string(), "".to_string(), "".to_string())
@@ -136,7 +136,12 @@ pub fn command_info(vnt: &Vnt) -> Info {
let nat_type = format!("{:?}", nat_info.nat_type);
let public_ips: Vec<String> = nat_info.public_ips.iter().map(|v| v.to_string()).collect();
let public_ips = public_ips.join(",");
let local_ip = nat_info.local_ip.to_string();
let local_addr = nat_info.local_ipv4_addr.to_string();
let ipv6_addr = if nat_info.ipv6_addr.ip().is_unspecified() {
"None".to_string()
} else {
nat_info.ipv6_addr.ip().to_string()
};
Info {
name,
virtual_ip,
@@ -146,7 +151,8 @@ pub fn command_info(vnt: &Vnt) -> Info {
relay_server,
nat_type,
public_ips,
local_ip,
local_addr,
ipv6_addr,
}
}
+2 -1
View File
@@ -13,7 +13,8 @@ pub fn console_info(status: Info) {
println!("NAT type: {}", style(status.nat_type).green());
println!("Relay server: {}", style(status.relay_server).green());
println!("Public ips: {}", style(status.public_ips).green());
println!("Local ip: {}", style(status.local_ip).green());
println!("Local addr: {}", style(status.local_addr).green());
println!("IPv6: {}", style(status.ipv6_addr).green());
}
pub fn console_route_table(mut list: Vec<RouteItem>) {