☰
PLC 无法配置网关,如何通过 SNAT 实现跨网段访问?
2026/10/1 7:57:57 网站建设 项目流程

在工业现场,有些 PLC 只能设置 IP 地址和子网掩码,无法配置默认网关。电脑与 PLC 在同一网段时,通信正常;但换到其他网段,或通过 VPN 远程访问时,却可能连接失败。

如果请求已经能够到达 PLC,问题往往出在回程:PLC 不知道如何向远端网段发送回复。

这种情况下,可以通过SNAT(源地址转换),让 PLC 在不配置网关的情况下,响应远端设备发起的访问。

一、为什么本地能访问,跨网段却不通?

假设网络结构如下:

远端电脑:192.168.20.100/24 │ 路由网络或 VPN │ 现场路由器:192.168.10.1/24 │ PLC:192.168.10.10/24 无法配置默认网关

同网段设备通信时,通常可以通过 ARP 查询对方的 MAC 地址,然后直接发送数据,不需要默认网关。

但跨网段通信有所不同。

假设远端电脑发出的请求经过路由器,已经到达 PLC,而且途中没有进行源地址转换。PLC 看到的是:

源 IP:192.168.20.100 目标 IP:192.168.10.10

PLC 准备回复时,会根据自己的 IP 地址和子网掩码判断:192.168.20.100不属于本地的192.168.10.0/24网段。

如果没有到远端网络的路由,又无法配置默认网关,PLC 就无法正常发出回复。

于是出现了:

请求能够到达 PLC,回复却无法返回远端电脑。

PLC 通常不会因为请求是某台路由器送来的,就自动把回复交还给它。发送回复时,仍然需要根据目标 IP 地址选择路径。

二、SNAT 如何解决这个问题?

SNAT 的作用,是在转发数据包时修改它的源 IP 地址。

在这个场景中,可以让现场路由器把远端访问 PLC 的请求,统一转换成以路由器的 PLC 侧接口地址为源地址。

转换前:

源 IP:192.168.20.100 目标 IP:192.168.10.10

转换后:

源 IP:192.168.10.1 目标 IP:192.168.10.10

此时,PLC 看到的访问者变成了192.168.10.1。

这个地址与 PLC 处于同一网段,PLC 可以直接向它回复,不需要默认网关。路由器收到回复后,再根据保存的 NAT 连接映射执行反向转换,将回复转发给远端电脑。

SNAT 的关键,是把 PLC 的回复目标变成一个同网段、可以直接到达的地址。

三、一次完整的通信过程

以远端电脑访问 PLC 为例:

第一步:远端电脑发出请求

192.168.20.100 → 192.168.10.10

请求通过路由网络或 VPN,到达现场路由器。

第二步:路由器执行 SNAT

路由器将源地址改为自己的 PLC 侧接口地址:

192.168.10.1 → 192.168.10.10

目标地址仍然是 PLC,改变的是请求的来源地址。

第三步:PLC 直接回复路由器

PLC 判断192.168.10.1与自己处于同一网段,因此直接回复:

192.168.10.10 → 192.168.10.1

第四步:路由器还原并转发回复

路由器根据连接映射,把回复的目标地址还原成远端电脑的地址:

192.168.10.10 → 192.168.20.100

这样,远端电脑与 PLC 就完成了一次双向通信。

四、SNAT 规则应该怎样理解?

不同设备的配置界面和命令不同,但规则的基本逻辑一致:

配置项示例含义
原始源地址192.168.20.0/24哪些远端设备的请求需要转换
目标地址192.168.10.10需要访问的 PLC
出接口连接 PLC 网络的接口请求从哪个接口发往 PLC
转换后源地址192.168.10.1PLC 实际看到的访问者地址

这条规则可以理解为:

当来自192.168.20.0/24、发往 PLC192.168.10.10的请求从 PLC 侧接口出去时,将源地址改成192.168.10.1。

实际配置时,还可以根据需要限制协议和端口,让规则只作用于必要的业务流量。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询