(Mac OS PF) 將傳出 UDP 流量重新導向至特定 ip:連接埠

(Mac OS PF) 將傳出 UDP 流量重新導向至特定 ip:連接埠

我無法理解 PF 在 Mac OS 中的工作原理。我一直在對該主題進行大量研究,但找不到解決方案(儘管我可以找到許多其他非常相似的問題而沒有答案)。

我的目標是在使用 UDP 連接埠 (21928) 發送到多播位址 (225.0.0.37) 的傳出封包離開我的介面之前,將其重定向到同一多播位址的不同 UDP 連接埠 (6010)。

如果這不可能,則將連接埠 (21928) 重新導向至位址 192.168.0.20:6010 將是下一個最佳選擇,但原始多播位址更可取。

現在據我所知,您不能對傳出封包使用 PF 規則,但是您可以將這些封包重定向到環回位址,然後以這種方式執行規則。

rdr pass inet proto udp from any to 225.0.0.37 port 21928 -> 225.0.0.37 port 6010
pass out on en4 route-to lo0 proto udp from en4 to 225.0.0.37 port 21928 keep state

這些是我正在使用的當前規則,在wireshark中我可以看到,當PF處於活動狀態時,數據包進入環回接口,但是除此之外沒有任何反應(當我禁用PF時,數據包按照最初的預期在225.0上離開) .0.37:21928 表示 PF 至少在啟用時正在執行某些操作)。

另外我還啟用了這個指令:

sysctl net.inet.ip.forwarding=1

我不確定我在這裡做錯了什麼。任何幫助將非常感激。

相關內容