![强制程序仅使用特定的本地端口](https://linux22.com/image/553253/%E5%BC%BA%E5%88%B6%E7%A8%8B%E5%BA%8F%E4%BB%85%E4%BD%BF%E7%94%A8%E7%89%B9%E5%AE%9A%E7%9A%84%E6%9C%AC%E5%9C%B0%E7%AB%AF%E5%8F%A3.png)
例如:Firefox 使用随机本地端口号连接到网站。(任何给定时间都可以使用数十个不同的本地端口。)是否可以强制程序仅使用特定的本地端口?(仅强制使用本地端口,目标端口可以是任何端口。)
答案1
除了修改源代码之外,我不知道还有什么方法可以做到这一点,即使这样,Firefox 也可能正在 Windows 上调用封闭的网络代码(即,它可能正在使用 Visual C++ 库)。
我很困惑你为什么要这么做。大多数防火墙对传出和传入连接都有不同的规则,限制传出端口的情况很少见,因为它们只监听来自特定 TCP 会话的流量。目标端口对安全性更加敏感,因为它们是开放的并且监听没有建立会话。
答案2
编写一个库来拦截并重写bind(2)
调用并使用$LD_PRELOAD
将其加载到所选应用程序下方。