我的设置是这样的:
[client01] <-A-> [server01] <-B-> [server02]
client01可以访问client01上的端口9300(连接A )。 server01只能通过ssh访问server02 (连接B ) 上的 9300端口。 使端口9300到server01所有stream量到达server01端口9300的最佳方法是什么?
我可以用client01到server01到server02的ssh隧道成功地做到这server02 ,但我不想在client01上运行ssh。 当我从server01到server02转发端口9300( ssh -g -L9300:localhost:9300 server02上的ssh -g -L9300:localhost:9300 server02 server01 ),它不起作用 – 我使用错误的命令?
编辑:添加server02只能通过SSH访问
你可以使用iptables DNAT规则来做到这一点 – 例如:
iptables -A PREROUTING -p tcp -d xxxx --dport 9300 -j DNAT --to-destination yyyy:9300
用server01的IP地址代替xxxx ,用server02的地址代替yyyy然后设置。
当然,这一切都假设你在server01上运行iptables。 这也假定server02正在使用server01将stream量路由回互联网。 如果server02不是,那么这不是做你想做的事情。
根据机器之间的纯SSH连接进行编辑:
除了在“L”和“9300”之间需要一个空格之外,您的SSH端口转发命令行看起来不错。 您还需要确保server01计算机将接受端口9300上的入站连接。查看filter表( iptables -L INPUT )中的iptables INPUT链以确保允许stream量进入。
你也需要让这个隧道一直保持下去。