11 个版本 (7 个重大更改)
0.8.0 | 2021 年 7 月 7 日 |
---|---|
0.7.1 | 2021 年 1 月 21 日 |
0.6.0 | 2020 年 12 月 21 日 |
0.5.0 | 2020 年 11 月 25 日 |
0.1.1 | 2020 年 7 月 24 日 |
#6 在 #tor-onion
每月下载量 62
38KB
434 行
Rust-libp2p 通过 SOCKS5 代理
此软件包未维护 最后支持的 rust-libp2p 版本是 v0.34。如果您想接管维护,请随时发送电子邮件至 'me (at) tobin.cc'。谢谢。
包含 rust-libp2p Transport
的实现,可用于通过 SOCKS5 代理重定向流量。
提供 Socks5TokioTcpConfig
类型,当构建集群时可以使用。
创建传输示例
/// Builds a libp2p transport with the following features:
/// - TCP connectivity over the Tor network
/// - DNS name resolution
/// - Authentication via secio
/// - Multiplexing via yamux or mplex
fn build_transport(
keypair: Keypair,
addr: Multiaddr,
) -> anyhow::Result<PingPongTransport> {
let mut map = HashMap::new();
map.insert(addr, LOCAL_PORT);
let tcp = Socks5TokioTcpConfig::default().nodelay(true).onion_map(map);
let transport = DnsConfig::new(tcp)?;
let transport = transport
.upgrade(Version::V1)
.authenticate(SecioConfig::new(keypair))
.multiplex(SelectUpgrade::new(
yamux::Config::default(),
MplexConfig::new(),
))
.map(|(peer, muxer), _| (peer, StreamMuxerBox::new(muxer)))
.timeout(Duration::from_secs(20))
.boxed();
Ok(transport)
}
目前的功能仅限于使用 Tor
守护程序作为 SOCKS5 代理(以下为原因)。
用法
请参阅 examples/ping.rs
以获取使用 Tor 的完整运行示例。
您应该配置您的 Tor 烟花服务以将流量重定向到某个本地端口。创建传输时需要 onion 地址和端口,如上所示。
示例 Tor 配置
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 7 127.0.0.1:7777
检查隐藏服务数据目录中名为 hostname
的文件,该文件包含服务的 onion 地址。
SOCKS5 与 Tor
此存储库命名为 SOCKS5
而不是 Tor
,因为在技术上没有理由要针对 Tor
进行特定化。实际上,使用 Socks5TokioTcpConfig
创建的传输目前只能与 Tor
代理一起工作,因为我们在将目标地址传递给代理之前进行地址篡改。欢迎提交 PR,请参阅 https://github.com/comit-network/rust-libp2p-tokio-socks5/issues/1。
依赖关系
~14–19MB
~381K SLoC