It all depends on what You put the server. If it is dev server (ie the server for development), it is logical all the trash to put in there. Especially, there are often situations when the working (primary OS) is Windows, but development needs to go under Linix/UNIX (if You don't write in C#/ASP.NET, of course), because it is extremely useful in many respects, from the "native" file system with all the consequences, to... to the characteristics of the final OS. So, if You have a server that, that is, the server on which You write and test code, which would then put it on a production (live) server - then put all this trouble down there, including Gulp, Node.JS, all sorts of trim JPEG and PNG optim, assemblers projects, and everything else that You might need. Debuggers (including PHP) usually work fine in these ligaments. In the end, why is it You on the host machine?
Another factor in favor of one that would put Node.JS and his buns on a Linux machine (i.e. working on VirtualBox'e) will be what Windows/NTFS is a pretty shitty friends with long names in paths of modules that loves to create Node.JS it certainly works, but sometimes causes problems, which in *nix/Linux is not observed.
One of the options, as You have advised above, is a Vagrant
. It is a wrapper on top of VirtualBox'and or VMWare with a set of ready-made operating systems ("boxes"), for a variety of tasks, from web development in PHP or Node.JS to all at once. Put and configure everything in a few clicks (commands). Among other things - it will automatically configure network and other settings of the guest OSes.