使用 iptables 將所有流量重新導向至本機網路伺服器

使用 iptables 將所有流量重新導向至本機網路伺服器

阿囉哈,

我正在嘗試使用 iptables 將 wifi 路由器上的所有流量重定向到本地網路伺服器。我不確定我的命令是否正確,而且我想從規則中排除路由器 IP (172.16.0.1),以防止自己鎖定自己無法存取路由器。

到目前為止我想出了什麼:

iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j DNAT --to 172.16.0.2:80
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j DNAT --to 172.16.0.2:80

我還沒有進行上述測試,因為我擔心這會導致我無法再次訪問路由器哈哈。如何排除 172.16.0.1 被重定向到 172.16.0.2?

設定: 172.16.0.2 是網路伺服器的 IP 172.16.0.1 是我的路由器(dd-wrt),沒有網路連線。

我想要實現的目標的範例:

  • 使用者連線到 wifi 熱點,嘗試造訪 www.siteA.com,被重定向到 172.16.0.2 (/index.html)
  • 使用者連線到 wifi 熱點,嘗試造訪 www.siteB.com,被重定向到 172.16.0.2 (/index.html)
  • 使用者嘗試存取 172.16.0.1,但沒有指示:)

祝您有美好的一天,謝謝!

答案1

由於 iptables 規則是按順序處理的,第一條規則應該是允許所有流量定向到路由器。

iptables -t nat -I PREROUTING -i br0 -p tcp -d 172.16.0.1--dport 80 -j ACCEPT 

接下來新增規則以重定向流量。

iptables -t nat -A PREROUTING -d !172.16.0.1 -i br0 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2:80

我認為這不適用於 https,因為它沒有透過 ssl 連接到伺服器。

相關內容