mirror of
				https://github.com/EasyTier/EasyTier.git
				synced 2025-10-31 12:06:28 +08:00 
			
		
		
		
	enable sni for tls client (#691)
	
		
			
	
		
	
	
		
	
		
			Some checks are pending
		
		
	
	
		
			
				
	
				EasyTier Core / pre_job (push) Waiting to run
				
			
		
			
				
	
				EasyTier Core / build (freebsd-13.2-x86_64, 13.2, ubuntu-22.04, x86_64-unknown-freebsd) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-aarch64, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-arm, ubuntu-22.04, arm-unknown-linux-musleabi) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-armhf, ubuntu-22.04, arm-unknown-linux-musleabihf) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-armv7, ubuntu-22.04, armv7-unknown-linux-musleabi) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-armv7hf, ubuntu-22.04, armv7-unknown-linux-musleabihf) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-mips, ubuntu-22.04, mips-unknown-linux-musl) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-mipsel, ubuntu-22.04, mipsel-unknown-linux-musl) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (linux-x86_64, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (macos-aarch64, macos-latest, aarch64-apple-darwin) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (macos-x86_64, macos-latest, x86_64-apple-darwin) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (windows-arm64, windows-latest, aarch64-pc-windows-msvc) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / build (windows-x86_64, windows-latest, x86_64-pc-windows-msvc) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Core / core-result (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier GUI / pre_job (push) Waiting to run
				
			
		
			
				
	
				EasyTier GUI / build-gui (linux-aarch64, aarch64-unknown-linux-gnu, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier GUI / build-gui (linux-x86_64, x86_64-unknown-linux-gnu, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier GUI / build-gui (macos-aarch64, aarch64-apple-darwin, macos-latest, aarch64-apple-darwin) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier GUI / build-gui (macos-x86_64, x86_64-apple-darwin, macos-latest, x86_64-apple-darwin) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier GUI / build-gui (windows-arm64, aarch64-pc-windows-msvc, windows-latest, aarch64-pc-windows-msvc) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier GUI / build-gui (windows-x86_64, x86_64-pc-windows-msvc, windows-latest, x86_64-pc-windows-msvc) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier GUI / gui-result (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Mobile / pre_job (push) Waiting to run
				
			
		
			
				
	
				EasyTier Mobile / build-mobile (android, ubuntu-22.04, android) (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Mobile / mobile-result (push) Blocked by required conditions
				
			
		
			
				
	
				EasyTier Test / pre_job (push) Waiting to run
				
			
		
			
				
	
				EasyTier Test / test (push) Blocked by required conditions
				
			
		
		
	
	
				
					
				
			
		
			Some checks are pending
		
		
	
	EasyTier Core / pre_job (push) Waiting to run
				
			EasyTier Core / build (freebsd-13.2-x86_64, 13.2, ubuntu-22.04, x86_64-unknown-freebsd) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-aarch64, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-arm, ubuntu-22.04, arm-unknown-linux-musleabi) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-armhf, ubuntu-22.04, arm-unknown-linux-musleabihf) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-armv7, ubuntu-22.04, armv7-unknown-linux-musleabi) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-armv7hf, ubuntu-22.04, armv7-unknown-linux-musleabihf) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-mips, ubuntu-22.04, mips-unknown-linux-musl) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-mipsel, ubuntu-22.04, mipsel-unknown-linux-musl) (push) Blocked by required conditions
				
			EasyTier Core / build (linux-x86_64, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Blocked by required conditions
				
			EasyTier Core / build (macos-aarch64, macos-latest, aarch64-apple-darwin) (push) Blocked by required conditions
				
			EasyTier Core / build (macos-x86_64, macos-latest, x86_64-apple-darwin) (push) Blocked by required conditions
				
			EasyTier Core / build (windows-arm64, windows-latest, aarch64-pc-windows-msvc) (push) Blocked by required conditions
				
			EasyTier Core / build (windows-x86_64, windows-latest, x86_64-pc-windows-msvc) (push) Blocked by required conditions
				
			EasyTier Core / core-result (push) Blocked by required conditions
				
			EasyTier GUI / pre_job (push) Waiting to run
				
			EasyTier GUI / build-gui (linux-aarch64, aarch64-unknown-linux-gnu, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Blocked by required conditions
				
			EasyTier GUI / build-gui (linux-x86_64, x86_64-unknown-linux-gnu, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Blocked by required conditions
				
			EasyTier GUI / build-gui (macos-aarch64, aarch64-apple-darwin, macos-latest, aarch64-apple-darwin) (push) Blocked by required conditions
				
			EasyTier GUI / build-gui (macos-x86_64, x86_64-apple-darwin, macos-latest, x86_64-apple-darwin) (push) Blocked by required conditions
				
			EasyTier GUI / build-gui (windows-arm64, aarch64-pc-windows-msvc, windows-latest, aarch64-pc-windows-msvc) (push) Blocked by required conditions
				
			EasyTier GUI / build-gui (windows-x86_64, x86_64-pc-windows-msvc, windows-latest, x86_64-pc-windows-msvc) (push) Blocked by required conditions
				
			EasyTier GUI / gui-result (push) Blocked by required conditions
				
			EasyTier Mobile / pre_job (push) Waiting to run
				
			EasyTier Mobile / build-mobile (android, ubuntu-22.04, android) (push) Blocked by required conditions
				
			EasyTier Mobile / mobile-result (push) Blocked by required conditions
				
			EasyTier Test / pre_job (push) Waiting to run
				
			EasyTier Test / test (push) Blocked by required conditions
				
			* enable sni for tls client * update test case * fix public_ip parse bug
This commit is contained in:
		| @@ -242,6 +242,7 @@ mod tests { | |||||||
|         let url = "txt://txt.easytier.cn"; |         let url = "txt://txt.easytier.cn"; | ||||||
|         let global_ctx = get_mock_global_ctx(); |         let global_ctx = get_mock_global_ctx(); | ||||||
|         let mut connector = DNSTunnelConnector::new(url.parse().unwrap(), global_ctx); |         let mut connector = DNSTunnelConnector::new(url.parse().unwrap(), global_ctx); | ||||||
|  |         connector.set_ip_version(IpVersion::V4); | ||||||
|         let ret = connector.connect().await.unwrap(); |         let ret = connector.connect().await.unwrap(); | ||||||
|         println!("{:?}", ret.info()); |         println!("{:?}", ret.info()); | ||||||
|     } |     } | ||||||
| @@ -251,6 +252,7 @@ mod tests { | |||||||
|         let url = "srv://easytier.cn"; |         let url = "srv://easytier.cn"; | ||||||
|         let global_ctx = get_mock_global_ctx(); |         let global_ctx = get_mock_global_ctx(); | ||||||
|         let mut connector = DNSTunnelConnector::new(url.parse().unwrap(), global_ctx); |         let mut connector = DNSTunnelConnector::new(url.parse().unwrap(), global_ctx); | ||||||
|  |         connector.set_ip_version(IpVersion::V4); | ||||||
|         let ret = connector.connect().await.unwrap(); |         let ret = connector.connect().await.unwrap(); | ||||||
|         println!("{:?}", ret.info()); |         println!("{:?}", ret.info()); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -434,7 +434,7 @@ impl PunchSymToConeHoleClient { | |||||||
|         let public_ips: Vec<Ipv4Addr> = stun_info |         let public_ips: Vec<Ipv4Addr> = stun_info | ||||||
|             .public_ip |             .public_ip | ||||||
|             .iter() |             .iter() | ||||||
|             .map(|x| x.parse().unwrap()) |             .filter_map(|x| x.parse().ok()) | ||||||
|             .collect(); |             .collect(); | ||||||
|         if public_ips.is_empty() { |         if public_ips.is_empty() { | ||||||
|             return Err(anyhow::anyhow!("failed to get public ips")); |             return Err(anyhow::anyhow!("failed to get public ips")); | ||||||
|   | |||||||
| @@ -70,7 +70,7 @@ pub fn get_insecure_tls_client_config() -> rustls::ClientConfig { | |||||||
|         .dangerous() |         .dangerous() | ||||||
|         .with_custom_certificate_verifier(SkipServerVerification::new(provider.clone())) |         .with_custom_certificate_verifier(SkipServerVerification::new(provider.clone())) | ||||||
|         .with_no_client_auth(); |         .with_no_client_auth(); | ||||||
|     config.enable_sni = false; |     config.enable_sni = true; | ||||||
|     config.enable_early_data = false; |     config.enable_early_data = false; | ||||||
|     config |     config | ||||||
| } | } | ||||||
|   | |||||||
| @@ -183,6 +183,7 @@ impl WSTunnelConnector { | |||||||
|     ) -> Result<Box<dyn Tunnel>, TunnelError> { |     ) -> Result<Box<dyn Tunnel>, TunnelError> { | ||||||
|         let is_wss = is_wss(&addr)?; |         let is_wss = is_wss(&addr)?; | ||||||
|         let socket_addr = SocketAddr::from_url(addr.clone(), ip_version)?; |         let socket_addr = SocketAddr::from_url(addr.clone(), ip_version)?; | ||||||
|  |         let domain = addr.domain(); | ||||||
|         let host = socket_addr.ip(); |         let host = socket_addr.ip(); | ||||||
|         let stream = tcp_socket.connect(socket_addr).await?; |         let stream = tcp_socket.connect(socket_addr).await?; | ||||||
|  |  | ||||||
| @@ -203,8 +204,16 @@ impl WSTunnelConnector { | |||||||
|             init_crypto_provider(); |             init_crypto_provider(); | ||||||
|             let tls_conn = |             let tls_conn = | ||||||
|                 tokio_rustls::TlsConnector::from(Arc::new(get_insecure_tls_client_config())); |                 tokio_rustls::TlsConnector::from(Arc::new(get_insecure_tls_client_config())); | ||||||
|  |             let domain_or_ip = match domain { | ||||||
|  |                 None => { | ||||||
|  |                     host.to_string() | ||||||
|  |                 } | ||||||
|  |                 Some(domain) => { | ||||||
|  |                     domain.to_string() | ||||||
|  |                 } | ||||||
|  |             }; | ||||||
|             let stream = tls_conn |             let stream = tls_conn | ||||||
|                 .connect(host.to_string().try_into().unwrap(), stream) |                 .connect(domain_or_ip.try_into().unwrap(), stream) | ||||||
|                 .await?; |                 .await?; | ||||||
|             MaybeTlsStream::Rustls(stream) |             MaybeTlsStream::Rustls(stream) | ||||||
|         } else { |         } else { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 kevin
					kevin