1

我正在尝试在 MacOS 上使用tun_tap_mac 板条箱,但在入门时遇到了麻烦。这是我的代码:

fn main() -> io::Result<()> {
    let nic = tun_tap_mac::Iface::new("tun0", tun_tap_mac::Mode::Tun)
        .expect("Failed to create TUN device");

    let mut buf = vec![0u8; 1504];
    let nbytes = nic.recv(&mut buf[..])?;

    println!("read {:?} bytes: {:?}", nbytes, &buf[..nbytes]);

    Ok(())
}

我收到了这个错误:

thread 'main' panicked at 'Failed to create TUN device: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/main.rs:5:10

我尝试使用 sudo 进行构建,但遇到了同样的问题。MacOS 没有setcap-like 功能,文档似乎很稀疏。看起来这个板条箱是从原始 tun_tap 分叉来支持 Mac 的,但我真的找不到任何其他帮助。有什么建议吗?

4

1 回答 1

1

我也遇到了错误。当没有在 OS X 上安装 TUN/TAP 驱动程序时会发生此错误,您可以从这里安装,但是它不再被维护,并且让它在 OS X 上工作是一个成功或失败。

我建议使用另一个 crate rust-tun,它开箱即用,并使用utun默认情况下 OS X 中存在的驱动程序。

于 2021-03-21T10:16:04.153 回答