我正在设置对我自己的 Git 服务器的 SSH 访问,并且我已经做了一些预路由,因为 SSH 服务器没有侦听标准端口,因为 Git 服务器是由非 root 用户运行的。这是我目前 UFW 的 before.rules 中的规则:
-A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
它运行良好,但我有一个小问题,因为我在同一服务器上运行 VPN,并且如果我想连接到不同 IP 上的其他 SSH,此端口也会重定向到 2222。我只希望这样对我的 IP 的请求已预先从端口 22 路由到 2222,对其他 IP 的请求也没有。即使我从同一台计算机(本地主机、我的 IP)访问 SSH 服务器,我应该如何更改此规则以使用我的 IP?
答案1
您可以使用它-i
来匹配接收数据包的接口或-d
匹配目的地,如下所示:
-A PREROUTING -p tcp --dport 22 -d <SERVER-IP> -j REDIRECT --to-port 2222