我的 pf 防火墙/NAT 路由器设置的基础知识已经开始工作了;流量正常,端口 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
网络是公共 IP => 这个网关在 192.168.1.101 => 需要 ssh 访问的机器在 192.168.0.105
公共地址上的端口 22 正用于不同的子网(与 192.168.0.1/32 网络平行的 10. 网络)。
供参考以下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 state”使其达到建立连接并尝试登录的程度,然后超时(而之前它很快就失败了)。这可能只是从这里开始的超时问题。有时间我会再试一次;现在我刚刚在路由器机器上打开了 SSH,并且可以逐步登录(到路由器,然后到机器)。
您必须使用网关的外部 IP。尝试这个:
括号将插入当前绑定到该接口的 IP 地址,并在其更改时保持更新(例如,由于 DHCP)。:0 表示它应该只使用绑定到接口的主 IP,而不是别名。