我使用命令创建了从服务器到端点的反向隧道:
ssh -R 127.0.0.1:4000:localhost:81 user@server.domain隧道是在端点端创建的,它从服务器端口4000引导到端点端口81。在这个端口上有一个服务在监听,但这并不重要。我这么做是因为Endpoint在NAT之后,我需要从外部访问它。
我想知道是否可以在服务器端获得端点的IP。还有一个类似的问题:
但我的案子很具体。我不想手动输入命令,因为服务器将有许多反向隧道,而且我只能使用Endpoint绑定到的端口。
换句话说:如何使用服务器端的端口4000获取端点端的隧道IP?为了隧道目的,我无法在服务器上的端口4000与已建立的SSH连接之间找到任何关联。
netstat -plant (在服务器上)显示:
tcp 0 0 127.0.0.1:4000 0.0.0.0:* LISTEN 30307/sshd: user
tcp 0 0 8.8.8.8:22 1.2.3.4:44874 ESTABLISHED 12531/sshd: user
tcp 0 0 8.8.8.8:22 15.16.17.18:44258 ESTABLISHED 30203/sshd: user
tcp 0 0 8.8.8.8:22 22.22.22.22:46696 ESTABLISHED 15639/sshd: user如您所见,有一个服务侦听端口4000 (此端口被转发到端点端口81 (此处不可见)和三个ssh连接。其中之一服务于隧道。但我不知道是哪一个。8.8.8.8是服务器的IP。
发布于 2018-11-02 07:53:07
从netstat获取ssh进程id,
lsof -p $pid -a -d 3将显示连接的另一端的IP。由于ssh可以跳转,这可能不是最后的位置。
https://serverfault.com/questions/937228
复制相似问题