两台路由器之间的端口转发,最后是错误的IP

所以情况如下:

  • 我有adsl调制解调器连接到第一个路由器“A” – 本地IP 192.168.2.1
  • 我将SSH端口转发到第二个路由器“B” – IP 192.168.1.1
  • 在路由器“B”我转发SSH端口到机器 – 192.168.1.100

它的工作原理,我可以远程login到我的SSH服务器,但问题是当我检查SSH日志,所有login尝试的IP地址是本地的。 例如:

Mar 28 13:09:12 myserver sshd[14956]: Failed password for invalid user admin from 192.168.2.1 port 44341 ssh2 

当我转发http端口时,同样的事情发生。

如何解决它? 我需要知道正确的IP地址,以限制SSH访问。

第一台路由器是Mikrotik,第二台CISCO,我在服务器上使用CentOS。

  +-----------+ +-----------+ +-------------+ ASDL | Router A | | Router B | | SSH Server | ------>| Miktrotik |--->| Cisco |--->| CentOS | modem |192.168.2.1| |192.168.1.1| |192.168.1.100| +-----------+ +-----------+ +-------------+ 

你不能这样做,因为你正在使用NAT。 你应该把filter放在第一个路由器上。

这是否可能取决于networking设置的外观。 如果原始客户端IP被保留,则返回来自服务器的数据包将遵循默认路由到Internet上。 但是,它们必须通过路由器“B”,然后通过路由器“A”路由,以便这些路由器恢复对进入networking的数据包的服务器IP地址所做的更改。

如果从服务器到Internet的默认路由确实将数据包通过这些路由器,那么可以按照您的要求进行操作,假设两台路由器都能够在转发stream量时保留客户端IP。

由于服务器看到路由器“A”的IP,看起来路由器“B”已经被configuration为保留客户端IP。 因此,您只需要重新configuration路由器“A”来保留客户端IP,因为它正在转发数据包。

我不知道Mikrotik,所以我不能告诉你如何configuration路由器“A”,只是它是你缺less的部分。