問題
win10下使用docker啟動zookeeper 之前正常 某一天開機發現zookeeper啟動失敗
這個問題可以通過修改zookeeper的默認端口號解決,如果不想修改端口號可通過下面的方式解決。
An attempt was made to access a socket in a way forbidden by its access permissions
使用 netstat -ano|findstr "2181" 未找到進程
通過google搜索半天得知
可能是Hyper-v占用了默認端口
使用一下命令查看
netsh interface ipv4 show excludedportrange protocol=tcp
解決步驟
管理員運行cmd命令提示符 輸入一下指令
- 先禁用Hyper-V 需要重啟計算機
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
- 重啟完畢,同樣使用管理員cmd 設置你需要的端口(如果不先禁用Hyper-V 執行該命令無效)
netsh int ipv4 add excludedportrange protocol=tcp startport=2181 numberofports=1
- 在執行以下命令
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
重啟完畢,即可成功綁定端口
在使用命令查看一下綁定端口的狀態
netsh interface ipv4 show excludedportrange protocol=tcp
項目開發中,可能會存在其他端口被占用,如果找不到占用的進程,可以嘗試看Hyper-v是否占用了。