我有一个我们称之为 hub-server.tld 的服务器,它有三个 IP 地址:100.200.130.121、100.200.130.122 和 100.200.130.123。我在防火墙后面有三台不同的机器,但我想使用 SSH 将一台机器端口转发到每个 IP 地址。例如:第一台机器应该在 100.200.130.121 上的端口 22 上监听 SSH,而第二台机器应该在 100.200.130.122 上做同样的事情,对于所有机器上可能相同的端口上的不同服务,依此类推。
SSH 手册页-R [bind_address:]port:host:hostport列出了我启用了网关端口,但是当使用-R特定 IP 地址时,服务器仍然在所有接口上侦听端口:
# ssh -NR 100.200.130.121:22:localhost:22 root@hub-server.tld
Run Code Online (Sandbox Code Playgroud)
# netstat -tan | grep LISTEN
tcp 0 0 100.200.130.121:2222 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
有没有办法让 SSH 仅将特定 IP 地址上的连接转发到一台机器,以便我可以同时侦听其他 IP 地址上的端口 22,或者我必须对 iptables 做些什么?以下是我的 ssh 配置中所有不是注释/默认值的行:
Port 2222
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication …Run Code Online (Sandbox Code Playgroud)