我在本地ssh服务器上连接了一台远程Linux计算机,在端口5051上创建了反向ssh隧道。在ssh服务器本身上,我运行以下两个命令,以便为远程计算机提供本地IP地址。
ip addr add 192.168.1.51/24 dev eth0
iptables -t nat -A PREROUTING -d 192.168.1.51 -p tcp --dport 22 -j REDIRECT --to-port 5051在ssh服务器上,我还在sshd_conf中配置了sshd_conf yes。
从我网络上的第三台计算机(如果我在192.168.1.51上使用ssh ),我直接在远程Linux计算机上连接。
但是在ssh服务器上,如果我使用ssh 192.168.1.51,我将再次在ssh服务器上连接。我没有在远程计算机上连接。从ssh服务器连接远程计算机的唯一方法是使用ssh @localhost -p 5051
但我不想那么做。我希望能够从ssh服务器获得ssh 192.168.1.51,并在远程计算机上进行连接。
发布于 2018-05-17 21:19:36
IPTables NAT表的PREROUTING链规则仅适用于通过连接到网络的网络适配器从其他系统到达的IP数据包。
如果要将规则应用于本地生成的数据包,则需要向输出链添加规则。
所以,你需要这样做:
iptables -t nat -A OUTPUT -d 192.168.1.51 -p tcp --dport 22 -j REDIRECT --to-port 5051https://serverfault.com/questions/912726
复制相似问题