iptables -A POSTROUTING -d 192.168.16.254/32 -o wlan0 -j SNAT --to-source (您的 wlan0 的 IP 地址。猜猜它是 192.168.16.1)

iptables -A POSTROUTING -d 192.168.16.254/32 -o wlan0 -j SNAT --to-source (您的 wlan0 的 IP 地址。猜猜它是 192.168.16.1)

在阅读了一些论坛和指南后,我迷失了网络。

挑战:我得到了一个新设备:比亚迪电池盒(家庭储能系统)。该设备只能使用专有软件进行访问(用于固件更新和维护),该软件仅在运行该软件的计算机连接到盒子的 WiFi AP(192.168.16.0/24 网络)时才起作用。我想从我的家庭网络(192.168.2.0/24 网络)访问该设备。

在家庭网络中运行一台 ubuntu 服务器计算机,它执行 dhcp 和(过滤的)dns (pihole) 和其他令人讨厌的事情。到目前为止,我已经能够使用设备 wlan0 上的 wpa_supplicant 将 ubuntu 盒子连接到 BYD 盒子的 wifi。我可以在盒子本身上访问盒子的IP地址(192.168.16.254)。

但我不知道如何使该盒子可从整个网络访问。桥接是出路吗?还是静态路由?伪装?

我读得越多,我就越迷失;-)

我应该做什么才能实现我想要的目标?注意:网络上的 inet 路由器/默认 GW 不具有任何高级功能(如静态路由)。另一件坏事是:byd 维护软件硬编码了 192.168.16.254(可以在十六进制编辑器中更改)。

非常感谢任何帮助/建议。谢谢!

草图:

答案1

所以我现在得到了什么。

  1. 您的服务器通过 wifi 连接到该电池盒吗?正确的?
  2. 您想从所有客户那里拿到那个电池盒吗?正确的?

问:“服务器”也是默认网关吗?我认为是这样,因为它提供 DHCP。因此,这意味着网络中任何不知道电池盒子网的主机都将通过您的默认网关。

你现在可以做什么?我建议将您的其他主机隐藏在服务器的 wifi 适配器的 IP 后面。这样你就可以到达它。您可以为此使用 SNAT,这意味着您的 SRC IP 将被转换为 wifi 适配器的 IP。

所以会是这样的

iptables -A POSTROUTING -d 192.168.16.254/32 -o wlan0 -j SNAT --to-source (您的 wlan0 的 IP 地址。猜猜它是 192.168.16.1)

下次画网络拓扑的时候。还要记下设备本身的 IP

像这样:

(主机A).1 -------------------- 192.168.0.0/24 ---------------- .254 (主机 B)

使帮助和理解寻址方案变得更容易。

希望这可以帮助。

干杯

快速启动

编辑:根据你的答案。由于您不想将网络暴露给网络中的任何主机,因此最简单的方法是使用路由器上的静态路由来实现此目的。将网络 192.168.16.0/24 指向您服务器的 LAN IP(因为我猜路由器不会知道 WIfi。或者如果您不想添加整个网络,您也可以添加主机路由。

所以连接会是这样的

Anyhost <-> 路由器 <-> 服务器 <-WIFI-> 电池盒

这是L3用的!当然,L2 的工作方式会有所不同,因为 LAN 位于同一子网中,不需要经过路由器本身。这样,电池盒将始终看到服务器的 IP,而不是请求主机的真实 IP。

EDIT_2:我推荐作为参考:https://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html 写得很好。如果您还有任何疑问,请尽管询问。 :)

相关内容