装了Hyper-v之后,电脑间歇性出现了一些灵异事件,包括但不限于:
netstat
或者TCPView
毛都看不出来。磕磕绊绊用了一段时间后,发现问题其实是Hyper-v搞出来的,原因是Hyper-v会占据多个范围的端口保留给自己。
# powershell # 查看系统默认端口占用访问 netsh int ipv4 show dynamicport tcp 协议 tcp 动态端口范围 --------------------------------- 启动端口 : 1024 端口数 : 13977 # 查看hyper-v启动后的保留端口范围 netsh interface ipv4 show excludedportrange protocol=tcp 协议 tcp 端口排除范围 开始端口 结束端口 ---------- -------- 1026 1125 1226 1325 1326 1425 1426 1525 1526 1625 2180 2279 ... # 通过这个可以查看被占用的项目端口是否在这个范围内
2. 暂时禁用Hyper-v:需要先关闭hyper-v, 可以win+s 快捷键搜索 “windows功能” ,关闭hyper-v,或者使用下列命令,然后重启:
# powershell / cmd dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
3. 配置ipv4动态端口 / 或者配置需要的端口不被占用
# powershell / cmd 管理员权限 # start 起始端口 num 表示可用端口数 按自己的需求来 netsh int ipv4 set dynamicport tcp start=30000 num=16383 # 排除ipv4动态端口占用 startport 起始端口 numberofports 端口数 netsh int ipv4 add excludedportrange protocol=tcp startport=50051 numberofports=1
4. 重启hyper-v
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All