Xinetd 偵聽未指派給介面的 IP 位址

Xinetd 偵聽未指派給介面的 IP 位址

是否可以使用 Xinetd(或任何其他解決方案)來偵聽未指派給介面的 IP 位址的傳入封包,並啟動守護程序(如 Xinetd)?

所以我的 Linux 機器是預設的 GW,所有資料包都會發送到它。我想識別具有目標 IP 的特定資料包,該資料包未綁定到介面並對其做出反應(啟動守護程式)

謝謝!

答案1

是的,啟用一個net.ipv4.ip_nonlocal_bind設定:

echo "net.ipv4.ip_nonlocal_bind = 1" > /etc/sysctl.d/enable-nolocal-bind.conf"
sysctl net.ipv4.ip_nonlocal_bind=1

(後者是“立即啟用”,第一行是使其持久化)。現在您可以將守護程式綁定到任何 IP 位址。

但是,這可能不會按您的預期工作。同一區域網路內的電腦不使用預設閘道進行通訊。它們直接傳送封包,例如進行 ARP 查詢以找出將封包傳送到的系統的 MAC 位址。如果沒有回复,則不會恢復向預設網關發送資料包。相反,它將因錯誤而失敗。

答案2

在 Linux 上,本地類型的路由是環回的,並將傳遞到本機。也稱為任意IP

根據需要路由盡可能大的前綴。如果使用 IPv6,也許為此目的保留整個 /64,例如2001:db8:bdd2:c0e::/64。將其路由到該主機(Linux 機器),並在 Linux 機器中將其傳送至本機。

配置 xinetd 以偵聽所需的連接埠。

最終結果是,該網路中的任何 IP(例如2001:db8:bdd2:c0e::138)都將在此機器上終止,並啟動伺服器程式。

相關內容