You cannot access your web service on port 80 because a firewall, incorrect IIS binding, or missing port forwarding rule is blocking the connection. This guide walks you through verifying local bindings, checking Windows Firewall rules, and configuring router port forwarding to ensure external traffic reaches your server correctly.
Verify IIS Site Bindings
The most common reason for inaccessibility is that Internet Information Services (IIS) is not listening on the correct interface or IP address. By default, IIS may bind only to localhost or a specific static IP, ignoring incoming requests from other subnets. You must ensure the site is configured to accept connections on all unassigned addresses.
Open the
IIS Manager and select your website from the left-hand tree view. Click on
Bindings... in the right-hand Actions pane. In the window that appears, check if there is an entry for
http with port
80. If the
IP address column shows a specific IP instead of
All Unassigned, change it to allow traffic from any source. If no binding exists, click
Add... to create one. Select
http as the type, enter
80 as the port, and leave the IP address blank. This ensures the web server listens for any request arriving on port 80 regardless of the destination IP. After making changes, restart the site by clicking
Stop and then
Start in the Actions pane.
Check Windows Firewall Rules
Even if IIS is correctly bound, the Windows Defender Firewall often blocks inbound traffic on port 80 by default. You need to explicitly allow HTTP traffic through the firewall to permit external clients to reach your service.
Navigate to
Control Panel >
System and Security >
Windows Defender Firewall with Advanced Security. On the left menu, click
Inbound Rules. Look for a rule named
World Wide Web Services (HTTP Traffic-In). If this rule is disabled, right-click it and select
Enable Rule. If it does not exist, create a new rule by selecting
New Rule... in the right-hand Actions pane. Choose
Port as the rule type and select
TCP. Specify
80 as the specific local port. Allow the connection for all profiles (Domain, Private, Public). Name the rule something descriptive like
Allow HTTP Port 80 and finish the wizard. Verify that the new rule is enabled and has the correct scope.
Configure Router Port Forwarding
If you are accessing the service from outside your local network, your router must forward incoming traffic on port 80 to the internal IP address of your server. Without this configuration, the router drops packets destined for your web service.
Log into your router’s administrative interface using its gateway IP address. Locate the
NAT or
Port Forwarding section. Create a new virtual server or forwarding entry. Set the protocol to
TCP. Enter
80 as both the External Port and Internal Port. Enter the static local IP address of your machine hosting IIS in the
Internal IP field. Save the settings and restart the router if necessary. Note that some ISPs block port 80 for residential accounts; if forwarding fails, you may need to use an alternative port or contact your provider. For detailed steps on handling cross-subnet issues, see
Troubleshooting Access Issue to Website Hosted on IIS across Different Subnets.
Test Connectivity and DNS
After adjusting IIS, firewall, and router settings, test the connection locally first. Open a command prompt and run
telnet localhost 80. If the screen goes blank or connects successfully, the local stack is working. Next, test from another device on the same network using the server’s local IP address. If this works but external access fails, verify your public IP address matches the one forwarded in the router. Use a tool like
whatismyipaddress.com to confirm your public IP.
If you still face issues, consider potential conflicts with other software. Applications like Skype or Apache might hijack port 80. Check the Task Manager for processes listening on port 80 using
netstat -ano | findstr :80. Identify the PID and terminate conflicting services if they are not required. Additionally, ensure that no third-party antivirus software is interfering with network connections. For broader networking diagnostics involving unreachable destinations, refer to
Troubleshooting Destination Unreachable (Network Unreachable) Error from Physical Router to Virtual Machine.
Frequently Asked Questions
Why can I access the site locally but not remotely?
This usually indicates that port forwarding is misconfigured on your router or that your ISP is blocking port 80. Ensure your router forwards external port 80 to the correct internal IP of your IIS server. Also, verify that your public IP address has not changed due to a DHCP lease renewal.
How do I check which process is using port 80?
Open Command Prompt as Administrator and run the command
netstat -ano | findstr :80. The output will list the Protocol, Local Address, Foreign Address, State, and Process ID (PID). You can then open Task Manager, go to the Details tab, and sort by PID to identify the application holding the port.
Can I use a different port if 80 is blocked?
Yes, you can configure IIS to listen on an alternative port like 8080. Update the site binding in IIS Manager to use the new port number. Remember to update your router’s port forwarding rule to match the new internal and external ports. Clients will then need to append the port number to the URL, such as
http://example.com:8080.
What if my ISP blocks inbound connections on port 80?
Many residential ISPs block standard web ports to prevent home servers from being exposed to the internet. In this case, you cannot use port 80 directly. You may need to use a reverse proxy service, a tunneling solution like ngrok, or contact your ISP to request unblocking. Alternatively, host your site on a cloud provider that allows standard web traffic.
Does IPv6 affect port 80 accessibility?
If your network uses IPv6, IIS might be binding to an IPv6 address while you are trying to connect via IPv4. Ensure your IIS bindings include both IPv4 and IPv6 addresses or set them to All Unassigned. Check your firewall rules to ensure they apply to both IP versions if necessary.