http://localhost:10080

This technical paper discusses the issue of localhost port 10080 being blocked by Google Chrome and Mozilla Firefox. We examine the reasons behind the block, the problems it poses for programmers, and offer solutions to work around this limitation. The paper is aimed at helping other developers understand and navigate this issue while working on their projects.

Understanding the Block

To comprehend the issue, we first need to understand how localhost works. Localhost is a loopback mechanism where the computer connects to itself, bypassing the need for an external network. This is useful for developers as it allows them to test their applications in a controlled environment. When an application is run on a local server, it listens to a specific port number (e.g., 8080, 10080) and serves the application through that port.

The issue at hand is that Google Chrome and Mozilla Firefox have been found to block connections to localhost port 10080. This is because port 10080 is listed as a “potentially unsafe port” in these browsers.

YouTube video

Reasons Behind the Block

Browsers maintain a list of potentially unsafe ports to protect users from malicious websites or applications. The reason behind this is that some ports have been historically used by malware, or they are reserved for specific purposes that may pose a security risk if used inappropriately.

Port 10080 has been flagged as potentially unsafe because it is used by the Message Session Relay Protocol (MSRP), a protocol that enables real-time communication like instant messaging, video chat, and presence information. Unfortunately, MSRP has been linked to several vulnerabilities that could be exploited by attackers. As a precautionary measure, browsers like Google Chrome and Mozilla Firefox have decided to block port 10080 by default.

Problems for Programmers

This block has caused issues for developers who use localhost port 10080 for testing their applications. When attempting to access their application, they are met with an error message in the browser, preventing them from viewing or interacting with their application as intended. This creates a hindrance in the development process and forces programmers to seek alternative solutions.

Solutions and Workarounds

To address this issue, developers have several options at their disposal:

5.1. Changing the Port Number

A simple solution is to change the port number used by the application. Instead of using port 10080, developers can configure their application to listen to a different, unblocked port (e.g., 8080 or 3000). This can be done by modifying the server configuration file or the settings in the development environment.

Example:

In a Node.js application, you may have the following line of code:

app.listen(10080);

You can change it to:

app.listen(8080);
YouTube video

5.2. Using a Reverse Proxy

Another option is to use a reverse proxy, such as Nginx or Apache, to redirect traffic from the blocked port to an unblocked one. This involves configuring the proxy to listen on an unblocked port and forwarding traffic to the application running on port 10080.

Example:

In an Nginx configuration file, you can add the following block:

server {
  listen 8080;
  location / {
    proxy_pass http://localhost:10080;
  }

This configuration will make Nginx listen on port 8080 and forward all incoming requests to the application running on port 10080.

5.3. Browser Configuration Changes

While not recommended for long-term use due to potential security risks, developers can temporarily change browser settings to unblock port 10080. This solution should only be used in a controlled development environment and not on a production server. For Google Chrome, you can launch it with the `–explicitly-allowed-ports` flag:

chrome --explicitly-allowed-ports=10080

You can adhere to these procedures for Mozilla Firefox:

  1. In the address bar, type “about:config” and press Enter.
  2. Select “Accept the Risk and Continue” from the menu.
  3. Look up ‘network.security.ports.banned.override’.
  4. To create a string, right-click anywhere and choose “New” from the “String” menu if the setting is missing.
  5. Give the new setting the name “network.security.ports.banned.override” and enter “10080” as its value.

Please be aware that altering browser settings could put your system at risk for security breaches. Use caution, and after the development work is over, return to the default settings.

Finalization

Developers who utilize localhost port 10080 for their applications face difficulties because Google Chrome and Mozilla Firefox prohibit this port. However, developers can continue to test and improve their apps effectively by comprehending the causes of the block and applying the remedies described in this paper. Always keep the security implications of the selected solution in mind, and make sure the application is tested and set up securely.