当连接到 IP + 端口组合时,如何知道从哪个端口连接?

当连接到 IP + 端口组合时,如何知道从哪个端口连接?

我被要求将我的应用程序通过 VPN 连接到客户端的 SQL Server。

我熟悉网络用户空间,通过特定应用程序的端口连接到 IP。MySQL 通过 3306 等进行连接。我们有自定义应用程序在端口 8919 上监听 HTTP 请求。

客户要求我们说明我们从哪个端口进行连接,以便他们可以相应地修改防火墙。

由于我从未设置过,所以我不知道如何确定。端口是自动分配的吗?或者是否可以为某些连接(例如 SQL)设置 FROM 端口?

答案1

通常,源端口是自动分配的。不建议依赖特定值或特定范围。

直接使用套接字时,您通过调用来请求特定的本地端口绑定()连接()。“本地 IP 地址”字段可以保留为全零。

(类似地,您可以通过调用获取套接字名称()功能。这只有在连接建立后才可用,当然每次连接时本地端口都会不同。)

但是,在使用 MySQL 等更高级的客户端库时,库通常不提供请求绑定到特定本地端口的方法。毕竟,这样做非常很少有用,基于它构建安全策略毫无意义。(事实上,许多客户端库甚至不支持绑定到特定的本地地址,这非常有用...)

相关内容