在远程postgres服务器上发送pgdump命令时理解绑定端口



我实际上使用了一个执行pg_dump命令的dbeaver客户端在远程服务器上。命令的启动方式如下:

pg_dump --verbose --host=127.0.0.1 --port=47855 --username=user-accounet..

我不知道dbeaver是如何创建ssh隧道的(它使用了一个堡垒(但是,这不是问题所在。问题是:当我执行下面的命令时。。

lsof -i -P -n | grep pg_dump

我得到这个:

pg_dump   14144 parcss-alexco    3u  IPv4 397966      0t0  TCP 127.0.0.1:35978->127.0.0.1:47855 (ESTABLISHED)

这个地址ip:35978是什么?什么样的绑定35978->47855表示?它涉及远程ip地址吗?地方的我想了解。。

到套接字之间存在TCP连接。完全指定的套接字具有IP地址和端口号。

pg_dump使用127.0.0.1上的47855端口作为连接的远程套接字,但另一端的套接字呢?IP地址很清楚,但端口号是多少?由于套接字没有显式绑定到具有bind(2)的某个端口,因此connect(2)将分配一个"临时端口"号。在你的情况下,这恰好是35978。