ssh user@server -R server:port1:localhost:port2
这样 ssh 就会将对 server:port1 的请求转发到 localhost:port2,但任何人都可以连接到 server:port1。
所以我想知道是否有东西可以做到这一点但同时支持身份验证?
答案1
您可以使用本地机器上的另一个 ssh 隧道轻松完成此操作。
首先,你必须阻止外部连接端口1使用 iptables 的服务器:
iptables -A INPUT -p tcp --dport port1 -i eth0 -j DROP
其中 eth0 是您的 WAN 端口。
然后从本地端口 5000 在服务器的端口 1 上创建直接隧道,此步骤需要身份验证
ssh -L user@server 5000:localhost:port1
现在您可以连接到本地机器的 5000 端口,就像连接到服务器:port1 一样。