Iptables

連接我無法更改其 netconfig 的不同網路的客戶端

  • February 23, 2017

我有兩個客戶

Android 手機做熱點 (192.168.43.1/24) 另一個具有靜態 ip 的設備 (192.168.1.10/24) 我無法更改任何人的網路配置,首先是因為 android 熱點內部是硬編碼的(可以使用 root,但它不是有效的解決方案)和其他暫時無法更改 IP 的工業設備。

我需要做的是在它們之間進行通信,例如簡單的 ping。我知道使用網路遮罩這很容易,但正如我所說,不可能更改網路配置的任何內容。

你會如何解決這個問題?我的想法是在它們之間放置另一個設備,例如樹莓派並擷取到 network1 的 ip 並將它們修改為 network2 的 ip。這是一個可能的解決方案嗎?

謝謝

最後的解決方案是 IPTABLES 和虛擬 IP 的混合,所有這些都是在它們之間的中間 Linux 網關中製作的。它們之間的這個 Linux 設備有兩個 iface,wlan0 (43.20) 和 eth0 (1.1)

首先我添加了兩個虛擬IP

ifconfig wlan0:1 192.168.43.21/24
ifconfig eth0:1 192.168.1.2/24

然後我使用 IPTABLES 將這些虛擬 IP 重定向到網關的另一端:

iptables -t nat -A PREROUTING -i wlan0 -s 192.168.43.1 -d 192.168.43.21 -j DNAT --to-destination 192.168.1.10
iptables -t nat -A POSTROUTING -o eth0 -d 192.168.1.10 -j MASQUERADE

iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.10 -d 192.168.1.2 -j DNAT --to-destination 192.168.43.1
iptables -t nat -A POSTROUTING -o wlan0 -d 192.168.43.1 -j MASQUERADE

我希望這對某人有所幫助。

引用自:https://serverfault.com/questions/822103