mirror of
https://github.com/tun2proxy/tun2proxy.git
synced 2025-06-23 01:20:52 +00:00
Implement SOCKS5 authentication
This commit is contained in:
parent
c1aaec6159
commit
d2aef08e3c
5 changed files with 244 additions and 121 deletions
26
src/main.rs
26
src/main.rs
|
@ -1,6 +1,9 @@
|
|||
use std::net::SocketAddr;
|
||||
|
||||
use clap::{Parser, ValueEnum};
|
||||
use env_logger::Env;
|
||||
use std::net::SocketAddr;
|
||||
|
||||
use tun2proxy::tun2proxy::Credentials;
|
||||
use tun2proxy::{main_entry, ProxyType};
|
||||
|
||||
/// Tunnel interface to proxy
|
||||
|
@ -18,6 +21,14 @@ struct Args {
|
|||
/// Server address with format ip:port
|
||||
#[clap(short, long, value_name = "ip:port")]
|
||||
addr: SocketAddr,
|
||||
|
||||
/// Username for authentication
|
||||
#[clap(long, value_name = "username")]
|
||||
username: Option<String>,
|
||||
|
||||
/// Username for authentication
|
||||
#[clap(long, value_name = "password")]
|
||||
password: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)]
|
||||
|
@ -32,14 +43,23 @@ fn main() {
|
|||
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
|
||||
let args = Args::parse();
|
||||
|
||||
let credentials = if args.username.is_some() || args.password.is_some() {
|
||||
Credentials::new(
|
||||
args.username.unwrap_or(String::from("")),
|
||||
args.password.unwrap_or(String::from("")),
|
||||
)
|
||||
} else {
|
||||
Credentials::none()
|
||||
};
|
||||
|
||||
match args.proxy_type {
|
||||
ArgProxyType::Socks5 => {
|
||||
log::info!("SOCKS5 server: {}", args.addr);
|
||||
main_entry(&args.tun, args.addr, ProxyType::Socks5);
|
||||
main_entry(&args.tun, args.addr, ProxyType::Socks5, credentials);
|
||||
}
|
||||
ArgProxyType::Http => {
|
||||
log::info!("HTTP server: {}", args.addr);
|
||||
main_entry(&args.tun, args.addr, ProxyType::Http);
|
||||
main_entry(&args.tun, args.addr, ProxyType::Http, credentials);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue