pf端口转发

我有我的防火墙/ NAT路由器设置工作的基础知识; stream量正常,端口53上的DNS请求映射到内部子网,然后再次成功退出(端口号不变)。 但我坚持从内部网关到我需要翻译端口的机器的端口转发。 这是我得到的似乎没有工作:

rdr on $ext_if inet proto tcp from any to 192.168.1.101 port 24 -> 192.168.0.105 port 22 pass in on $ext_if inet proto tcp from any to 192.168.0.105 port 22 

networking是公共IP =>这个网关在192.168.1.101 =>机器需要SSH访问在192.168.0.105

公共地址上的端口22正被用于不同的子networking(一个与192.168.0.1/32networking平行的networking)。

供参考以下IS工作:

 rdr on $ext_if proto udp from any to any port 53 -> 192.168.0.105 pass in on $ext_if inet proto udp from any to 192.168.0.105 port 53 

编辑:所以,添加“synproxy状态”得到它正在进行连接,并尝试login,然后超时(而之前失败相当快)的点。 这可能只是从这里的超时问题。 我会再试一次。 现在我刚刚在路由器机器上打开了SSH,可以一步一步地login(到路由器,然后到机器)。

你必须使用你的网关的外部IP。 尝试这个:

 rdr on $ext_if inet proto tcp from any to ($ext_if:0) port 24 -> 192.168.0.105 port 22 

圆括号将插入当前绑定到该接口的IP地址,并保持更新(如由于DHCP)。 :0表示应该只使用绑定到接口的主IP,而不使用别名。