Expand description
§Run server without any authorization
use dlzht_socks5::server::SocksServerBuilder;
#[tokio::main]
async fn main() {
let server = SocksServerBuilder::new()
.allow_auth_skip(true)
.build().unwrap();
let _ = server.start().await;
}Invoking allow_auth_skip(true), server will support auth method NO AUTHENTICATION REQUIRED,
which means auth phase can be skipped.
§Run server with password authorization
use dlzht_socks5::server::SocksServerBuilder;
#[tokio::main]
async fn main() {
let server = SocksServerBuilder::new()
.credential(b"username", b"password")
.build().unwrap();
let _ = server.start().await;
}Invoking allow_auth_skip(true), server will support auth method USERNAME/PASSWORD,
allow_auth_pass will auto be set true(we can set false back to disable password auth).
If we hava multiple username/password, then we can invoke credential(...) repeatedly,
or invoke credentials(...) for convenience.
§Custom validate username/password
Will support soon
§Run client without any authorization
use dlzht_socks5::client::SocksClientBuilder;
use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
#[tokio::main]
async fn main() {
let address = SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080));
let mut client = SocksClientBuilder::new()
.server_address(address)
.allow_auth_skip(true)
.build()
.unwrap();
let mut stream = client
.connect(("127.0.0.1".to_string(), 9000))
.await
.unwrap();
}§Run client with password authorization
use dlzht_socks5::client::SocksClientBuilder;
use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
#[tokio::main]
async fn main() {
let address = SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080));
let mut client = SocksClientBuilder::new()
.server_address(address)
.credential(b"username", b"password")
.build()
.unwrap();
let mut stream = client
.connect(("127.0.0.1".to_string(), 9000))
.await
.unwrap();
}Modules§
- client
- client module include
SocksClientBuilderandSocksClient - errors
- error module include all errors occur handling SOCKS5
- server
- server module include
SocksServerBuilderandSocksServer
Enums§
- Socks
Addr - three type of address SOCKS5 support
Traits§
- ToSocks
Address - convert trait from
SocketAddrtoSocksAddr