打开XDebug的Windows防火墙

这似乎应该超越简单,所以我讨厌问。 但是我试过configurationWindows防火墙,允许XDebug在端口9000上连接到PHPStorm而没有成功。

XDebug在具有专用networking连接的Vagrant Box上运行,因此主机具有虚拟networking适配器。 Vagrant是192.168.33.10,主机PC是192.168.33.1。

在禁用Windows防火墙的情况下,XDebug连接到PHPStorm。 但我显然不想离开我的防火墙。

所以我试着在Windows防火墙中用下面的入站规则设置打开一个端口:

  • 一般
    • 启用:检查
    • 行动:允许连接
  • 计划和服务
    • 所有符合指定条件的程序:检查
    • 服务
      • 适用于所有程序和服务:检查
  • 协议和端口
    • 协议types:TCP
    • 本地端口:特定端口:9000
    • 远程端口:所有端口
  • 范围
    • 本地IP地址
      • 任何IP地址:选中
    • 远程IP地址
      • 任何IP地址:选中
  • 高级
    • 简介
      • 域:检查
      • 私人:检查
      • 公开:已选中
    • 接口types
      • 所有接口types:检查
    • 边缘遍历:块边缘遍历

但是不能让XDebug连接到PHP风暴。 我也尝试将协议设置为UDP。 而且我知道,如果这个规定确实起作用了,它会过度开放(我可以收紧这个范围),但是现在我只想在收紧之前看到它的运作。

Virtualbox网络主机专用接口存在问题,因为它是回送接口,Windows以不同的方式管理它。

解决这个问题的简单方法是打开“regedit”。 搜索“HKLM:\ system \ CurrentControlSet \ control \ class {4D36E972-E325-11CE-BFC1-08002BE10318}”。 有很多的接口。 只需看一个名为“VirtualBox主机专用以太网适配器”。 然后添加名为'* NdisDeviceType'的新DWORD(32)键和值'1'(十六进制)。 重启。

我不知道是否有必要添加标准的Fw规则,如主机端口9000允许所有,因为我已经有了。

更多关于它 – http://brianreiter.org/2010/09/18/fix-virtualbox-host-only-network-adapter-creates-a-virtual-public-network-connection-that-c​​auses-windows-to-禁用服务/

我发现最简单的方法:Windows高级防火墙(您添加/删除规则) – >右键单击 – >属性(另一个地方/禁用本地/域/公共防火墙)

三个示波器(本地/域/公用)中的每一个都有一个设置来完全排除特定的网络接口(!)

打开任何vmware / virtualbox网络接口的Windows防火墙。 (除非您需要针对您的虚拟机)

这将允许从客人到主机的任何连接。

一般来说,不用协议或端口范围来指定规则会更容易。 相反,只要让程序可执行文件有一个防火墙例外的一切。 因此,不要为9000端口创建一个规则,只要创建一个“xdebug.exe”的规则,但不要把它限制在9000端口。

控制面板 – > Windows防火墙 – >点击“允许通过Windows防火墙的应用程序或功能”,然后添加xdebug.exe(或任何可执行文件名称)。 这将添加一组新的入站规则(一个用于UDP,另一个用于TCP)。 回到高级设置页面,找到新创建的入站规则,并检查每个入站规则以确认设置了“范围”复选框(私有,域名,公共)。

有一种方法可以打开防火墙日志记录,以便您可以在防火墙打开时发现阻塞情况。 然后,您可以根据需要添加规则。

http://technet.microsoft.com/en-us/library/cc787462(v=ws.10).aspx

如果除了虚拟适配器外,还有一个NAT适配器,您可以将php.ini中的xdebug配置更改为您机器上物理接口的IP。 最简单的方法是尝试远程登录到9000端口。