【发布时间】:2012-09-11 20:24:07
【问题描述】:
我正在尝试在 java 中开发一个 DHCP 客户端应用程序,它可以在端口 68 上接收 DHCP 提供和确认,而无需以 root 身份运行。我知道绑定到端口
[编辑] 应用程序可以发送 DHCP 发现和请求。它需要能够从使用自定义 DHCP 选项的 DHCP 服务器接收 DHCP 提供和确认。 DHCP 进程完成后,应用程序不会修改任何系统信息,但会执行“自定义”操作。
[编辑] 有没有办法配置 DHCP 守护程序以将接收到的数据包转发到应用程序,例如如何配置 SNMP 守护程序?
【问题讨论】:
-
以 root 身份运行?你不能用 Java 绕过操作系统的限制(特别是不能用 Java,被解释等等)。也许Linux提供了一些绑定后“切换用户”的方式,但更多的是操作系统问题。
-
我在尝试为 SNMP 陷阱绑定到端口 162 时遇到了类似的问题,但我设法找到了解决方法并让 snmpd 将陷阱路由到侦听端口 >1024 的应用程序.这也可以用 dhcpd 完成吗?
-
是的,可以转发数据包。你可以通过两种方式做到这一点。您可以使用“-p”端口配置 DHCPD,以便它在 68 以外的端口上侦听和传输,或者您可以在两者之间使用
dhcrelay。它会在任何端口上侦听和传输,同时让您的 DHCPd 在标准端口上侦听。