我被要求将我的应用程序通过 VPN 连接到客户端的 SQL Server。
我熟悉网络用户空间,通过特定应用程序的端口连接到 IP。MySQL 通过 3306 等进行连接。我们有自定义应用程序在端口 8919 上监听 HTTP 请求。
客户要求我们说明我们从哪个端口进行连接,以便他们可以相应地修改防火墙。
由于我从未设置过,所以我不知道如何确定。端口是自动分配的吗?或者是否可以为某些连接(例如 SQL)设置 FROM 端口?
答案1
通常,源端口是自动分配的。不建议依赖特定值或特定范围。
直接使用套接字时,您能通过调用来请求特定的本地端口绑定()前连接()。“本地 IP 地址”字段可以保留为全零。
(类似地,您可以通过调用获取套接字名称()功能。这只有在连接建立后才可用,当然每次连接时本地端口都会不同。)
但是,在使用 MySQL 等更高级的客户端库时,库通常不提供请求绑定到特定本地端口的方法。毕竟,这样做非常很少有用,基于它构建安全策略毫无意义。(事实上,许多客户端库甚至不支持绑定到特定的本地地址,这会非常有用...)