linux - 如何向套接字提供目标MAC地址

标签 linux sockets networking arp

我的 linux 主机上有一个应用程序,它通过 10G 以太网通过 UDP 与另一台机器通信。另一端的机器不响应 ARP 请求。我可以通过其他方式(不同的接口(interface),在

有没有办法以编程方式将此信息放入没有特权状态的 arp 表中?

我知道每次开机时我都可以在命令行上发出“sudo arp -s 1.2.3.4 AA:BB:CC:DD:EE:FF”。

我知道我可以将“1.2.3.4 AA:BB:CC:DD:EE:FF”添加到 etc/ethers

我知道作为特权用户/进程,我可以向 SIOCSARP 发出 ioctl。

所有这些机制都需要 sudo/root 权限。我阅读了一些有关授予应用程序“CAP_NET_ADMIN”权限的内容。

我正在寻找此功能,以便最终用户无需执行上述任何操作。看起来,如果我没有 sudo/root,可以打开一个确定是否需要此网络信息的套接字,我应该有一种方法,没有 sudo/root,可以提供它。

最佳答案

不可以,您不能以非 root 身份编辑 ARP 信息。这是有道理的,否则恶意攻击者将能够修改 ARP 表并完全破坏网络通信并危及安全。

您的问题的解决方案是修复您的网络配置。

关于linux - 如何向套接字提供目标MAC地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45640341/

相关文章:

linux - 我可以将 source test1.sh 与 gnome-terminal -x 一起使用吗?

linux - 运行程序时捕获涡轮速度

linux - 为 fedora 编译和构建 cobbler 源代码 rpm

python - 从套接字中获取服务器名称

java - 简单的服务器/客户端套接字连接?

c++ - 服务器和客户端套接字连接问题重新。 send()、accept() 和多线程

linux - 使用 ip Route 手动设置路由

Java Neuroph 框架数据格式

linux - 通过 bash 控制传递给子进程的环境

python - 微软 Azure : obtaining public IP on Linux with azure API for Python