协程数量过多导致端口扫描失败,如何解决?
协程数量导致的端口扫描问题
问题描述:
在编写一个端口扫描器时,使用sync.waitgroup限制协程数量,但在设置协程数量过高时,扫描出的端口数量与预期不符。
解决方法:
这个问题并不是 go 代码本身的问题,而是 linux 系统的限制造成的。 linux 默认允许同时打开的文件数为 1024,这就会导致当创建的协程数量超过该限制时,端口扫描会失败。
要解决这个问题,需要修改linux 的配置限制:
ulimit -SHn 10000
需要注意的是:
- 降低协程数量:不一定越多越好,需要根据实际情况调整。
- 修改 linux 配置:需要具有 root 权限,且修改后可能会影响其他程序。
以上就是协程数量过多导致端口扫描失败,如何解决?的详细内容,更多请关注其它相关文章!