迁移通知
本站内容正在逐步向 https://www.weiran.ink 迁移,更新内容请到新站查找。
装了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