#p2p #tor #socks5-proxy #sock #networking #tor-onion

未维护 libp2p-tokio-socks5

libp2p 的 TCP/IP 传输协议(通过 SOCKS5 代理)

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

Download history 41/week @ 2024-03-30 12/week @ 2024-04-06 2/week @ 2024-04-13 4/week @ 2024-04-20 5/week @ 2024-04-27 4/week @ 2024-05-18 7/week @ 2024-06-01 12/week @ 2024-06-08 24/week @ 2024-06-15 21/week @ 2024-06-22 3/week @ 2024-06-29

每月下载量 62

许可证 GPL-3.0

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