I start a VM (Linux) in a host-only network connection (manual IP address: 192.168.8.123) under Windows 7. After turning off the VM firewall, I can ping the VM from Windows.

However, when I tried to ping from the VM, it failed. I noticed if I turned off the Windows firewall, then the ping can make it. However, I don't want to turn the firewall off. So how do I configure the firewall to let my Linux VM ping successfully get to Windows?

I ran into this issue recently when I started doing Linux development on a Windows laptop where the source code was on the host and it was shared over CIFS* to compile on a CentOS VM.

  1. Open Windows Firewall and click on Advanced Settings:
  2. In the overview panel, click on Windows Firewall Properties Windows Firewall Properties
  3. Click on Public Profile Tab, Protected network connections, and unselect Virtual Host-Only Network Public profile, customize

That's it! You can disable the adapter from Domain and Private Profile as well but you should not have to. The root cause of the problem seems to be that the host-only adapter is set to public instead of private, but I never did manage to find a solution to change that setting for the host-only adapter.

My solution assumes that you trust the communication between the host and the guest while keeping the firewall active for other adapters. If you want to be more narrow in what you let through between the host and guest VM, you can also edit the individual inbound and outbound rules to allow certain traffic through.

This solution also works when you take your laptop and connect to your work Wi-Fi or tunnel in through VPN which may change your local subnet.

** I found that using VirtualBox's shared folder performance is abysmal (5x slower for my project) - hence the CIFS.*.

Try this: http://www.sysprobs.com/enable-ping-reply-windows-7 - It has worked for me in the past.

Solutions:

1) Disable the firewall completely in windows 7, which is not recommended.

2) Create an exceptional rule for ICMP echo request to reply ping commands in existing firewall, without disabling it completely.

ICMP Rule in Windows 7 Firewall

Follow the steps steps to create a rule. These steps are similar to enable ping in Windows Vista

Also Check how to enable ping in Windows XP

1) Go to Windows Firewall in Control panel

Enable Windows 7 Ping in Firewall

You can see, Windows Firewall status is On. Click on Advanced settings in left side as mentioned above.

2) Select Inbound Rule, Right clink on it and select New Rule…

Enable Windows 7 Ping in Firewall

3) Select Custom (Custom Rule) at last and press Next.

4) Leave All programs and go to Next.

Enable Windows 7 Ping in Firewall

5) Click on Protocol type and select ICMP4 as shown below. ICMP4 is the protocol used in ping command when your network is communicating with IPv4.

Enable Windows 7 Ping

6) Since we are going to apply this rule for any IP, means responds to any IP addresses coming with echo request, select ‘Any IP addresses’ in next screen. You can add specific IP addresses also, if you want your windows 7 computer to respond to them only for ICMP echo request (ping )

Enable Windows 7 Ping

7) Allow the connection in next screen, press Next.

8.) Keep the all three check boxes checked in the next screen, to apply this rule any type of network you connected.

9) Give a name to this rule. This name will be showing under Inbound Rules in Windows Firewall. In future you can delete the rule by this name.

Enable Windows 7 Ping in Firewall

Click Finish.

10) That’s it; these are easy steps to enable ping in windows 7 and the rule will be immediately applied and appeared in inbound rules. Now, Windows 7 computer will be responding to ICMP echo ping requests without disabling or stopping the windows firewall.

  • Hi Steve, thanks for your help. However, the reason I want to ping Win from VM Linux is trying to make sure they can communicate with each other so that later, I can program between them. However, what I see from your suggestions seems creating a rule only for ping. Am I right? What if I want more than just ping. Will the above steps still work? – Laodao Jul 5 '15 at 23:03
  • I see, I'm pretty sure this is the issue with pinging the Windows machine from the linux machine. To better understand what will need to communicate what will the linux machine be used for? The reason they will need to talk. Maybe I should understand "program between them" but I don't. I'm not trying to be rude by saying that. Do you mean just connecting to one with using VMware or VirtualBox? Like RDP or Remmina? – Steve Wi Jul 6 '15 at 2:36
  • I think at this point we are going to run into a more complex issue with linux is why I ask the above question. Are the Windows machines on a domain? If so we could add the linux machine to it the domain. – Steve Wi Jul 6 '15 at 3:06
  • Please read How to reference material written by others. You should block quote text that has been written by some else. See Markdown help. I've fixed it for you this time, but please pay attention to this in future. – DavidPostill Jan 31 '17 at 11:41

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.