2017-03-24 57 views
-2

我使用Linux路由器通过PPPoE访问互联网。这个盒子有两个接口:eth0用于内部LAN,eth1用于在PPPoE-Modem上建立ppp0接口。对于防火墙和端口转发,我使用iptables和nat。 此作品为期待:我可以去从LAN互联网,我可以从外面通过端口转发的LAN访问某些服务:iptables端口转发方向

iptables -t nat -A PREROUTING -p tcp --dport 9999 -DNAT --to 192.168.2.10:22 

(作为一个例子,用于访问一定的SSH端口我的局域网内机器从外)
但我想从LAN内部的WAN端口eth1的访问一台机器(192.168.8.2): 为此,eth1的配置为: ip addr add 192.168.8.1 dev eth1

所以我可以从路由器上的控制台上ssh 192.168.8.2。这按预期工作。但我想从局域网中的机器访问它。

iptables -t nat -A PREROUTING -p tcp --dport 9997 -DNAT --to 192.168.8.2:22 

但是这不起作用。我看到来自LAN端计算机的数据包进入eth0并寻址192.168.8.2,但我没有得到答案。 有人可以指我,我的错误在哪里?

在此先感谢 马尔科

回答

0

除非服务器(192.168.8.2)知道如何找回电脑在局域网上(必须检查从服务器回来的流量路由),则必须在路由器上添加一个-t n POSTROUTING规则,使它看起来像看起来像这是从路由器发出的流量(我猜测它已经可以从192.168.8.2访问)。当服务器响应时,该流量将能够返回到路由器,并且路由器将处理它的取消注册它。

+0

'''iptables -t nat -A POSTROUTING -o interface-toward-ssh-server -d 192.168.28.2 -dport 22 -j MASQUERADE -m comment --comment“伪装ssh流量去192.168.8.2 so它回到了我们身边......“”......或者其他的东西。 – eftshift0