我有一个 pfSense 路由器。我还有一个 iPhone。
在我的路由器上,我点击了“为此设备设置静态映射”,我将静态 IP 设置为 10.12.1.56 作为我的 iPhone MAC 地址。
DHCP 服务器不会将该 IP 地址租给我的手机。它继续使用随机 IP 地址。
如果直到我在手机上设置静态 IP 后它才起作用,那么在 pfSense 上设置静态 IP 有什么意义呢?
答案1
我已经使用 pfSense 多年了。就我而言,它对大多数人来说都很好用。我的第一反应(如果错了,请见谅!)是你做错了什么或误解了正在发生的事情。但你的问题没有足够的细节或设置屏幕的屏幕截图(敏感部分被涂黑)来查看它是什么或进一步了解它。
我认为你问题的最后一行不对。你写道“...如果它在我手机上设置静态 IP 之前不起作用”。但如果它“直到 [你] 设置静态 IP 才起作用”,那么根据定义它就是起作用的。所以我认为问题中的这句话一定是错的。听起来更像是设备没有使用静态映射,而你认为它已经设置并且应该被使用,而你不知道为什么。你能编辑一下问题让它更清楚吗?
需要检查更多的事情(大多数是显而易见的,而且 - 说实话 - 大多数都是多余的检查,但目前很难知道您的知识水平或您认为最好的) - 如果它没有获得您想要的 IP,它被分配了什么 IP,这是 IPv4 还是 IPv6?您的 LAN 配置为使用哪些 IP 范围/子网,您的 DHCP 服务器配置为分配哪些 IP 范围?IPv6 是否已启用/禁用/正在使用(如果没有完全禁用,是否启用了 IPv6-IPv4 桥接/隧道/封装)?如果它是通过 wi-fi 连接,您使用什么将 pfSense 桥接到 Wi-Fi(卡或 AP),如果它是一个单独的设备,你确定这个设备不是分配 IP 的设备,并且 pfSense 而不是 wifi 设备/AP 实际上正在获取和返回 DHCP 请求? iPhone 是否真的在请求 IP,而 10.12.1.56 IP 是否真的由路由器分配(它可能是设备中的旧固定设置,也可能是通过其他方式获取的)?您的 WLAN 上或 iPhone 无线邻居中的任何其他设备是否能够通过 DHCP 进行分配(可能是从其他设备获取)?IP 地址是否可能持续存在(即,您没有看到分配的新 IP,因为路由器或 iPhone 认为旧 IP 仍有许多小时才能更新)?如果您禁用 DHCP 服务器然后重新启动 iPhone,它是否无法获取 IP 地址(这表明它正在按要求询问服务器)?如果您将 DHCP 服务器的“池”更改为其他范围(例如 10.5.0.0-10.5.0.100)并重新启动 iPhone,会发生什么?如果您更改 DNS 服务器或其他 DHCP 数据,iPhone 下次连接时是否会获取该更改(证明 DHCP 正在正确发送和接收)?如果您使用 DHCP 日志或“数据包捕获”来观察 iPhone 连接和请求 IP,那么流量捕获会显示什么(问题是路由器未收到 DHCP 请求或未在响应中返回预期的 IP,还是 iPhone 未发送 DHCP 请求或未在回复中使用 IP)?静态租约列表是否列出了与 iPhone 设置页面显示的相同 MAC 地址?当您查看租约(全部,而不仅仅是最近/在线的租约)时,它是否显示 iPhone 处于在线状态,如果是,它旁边是否显示了正确的 MAC 地址?
也许其中一些会有所帮助。如果没有帮助,则需要更多细节来提供更多帮助。
答案2
以防万一您的设置是这样的;如果您使用旧路由器作为您的 WAP(例如,我使用我的旧 ISP 路由器进行 WiFi 连接,该路由器已接入我的 pfSense LAN),那么请确保您用于 WiFi 连接的路由器的 DHCP 已关闭。
如果您没有使用路由器作为 WAP,请忽略这一点。
答案3
它曾经工作正常(至少在 2.03 中),然后在 2.2.x 中停止工作(除非你手动修改一些东西),虽然我不记得它到底在什么时候开始出现问题 - 我还没有部署 2.3 来查看它会发生什么,因为新版本通常会出现一些初期问题。
在 2.2 上,我需要做的是(在 DHCP 中保留池外的固定地址后)找到相关设备的“随机 DHCP 池映射”(在状态:DHCP 租约) 并删除它。在旧版本中,创建静态时理所当然地完成了这项工作。它应该完成,但没有完成,因为我现在正在解决一个问题,以便在我写这个答案时检查我的进程,在 2.2.x 上 - 这意味着有两个租约与一个 MAC 地址相关联,这显然是错误的。您可能需要“显示已过期的租约”才能看到麻烦的那个,但尽管它(可能,取决于您查看的时间)已过期,而静态不是,如果您不删除已过期(或活动的)随机映射,它似乎会保留下来并在设备再次连接时再次变为活动状态。如果我没记错的话,当设备在线时,您也无法删除它;因此,您需要将其离线足够长的时间,以便 DHCP 服务器将其视为离线。
按 MAC 地址对 DHCP 租约列表进行排序通常是查找重复条目的最简单方法。
更新:这似乎又可以正常工作了(不需要像上面那样手动调整)2.3.2-发布。
答案4
您需要清除 dhcp 缓存
转到诊断,然后编辑文件复制以下文件路径:/var/dhcpd/var/db/dhcpd.leases 单击加载,突出显示并删除要删除的租约块,完成后单击保存