Невозможно получить доступ к экспресс-серверу http с общедоступного IP-адреса после переадресации портов и UPNP.

Итак, у меня есть очень простой экспресс-сервер HTTP, который возвращает простой HTML-код, размещенный на порту 127.0.0.1 и 6550, который отлично работает на локальном хосте. Я поделюсь кодом в конце этого поста, но не думаю, что он много говорит.

Я хочу связаться с этим через свой общедоступный IP-адрес, но не могу (ERR_CONNECTION_TIMED_OUT). Порт также отображается закрытым при проверке с помощью онлайн-инструментов проверки портов.

У меня модем TP link TD-W9970. Это переадресация портов:

А это uPNP:

Я абсолютно уверен, что пересылаю на правильный локальный IP-адрес и использую правильный порт:

Я заметил, что мой общедоступный IP-адрес, который я получаю от Google, и тот, который я получаю от информации WAN моих маршрутизаторов, различаются.

Мой общедоступный IP-адрес от Google: 85.107.**.13.

Мой IP-адрес из информации WAN с панели маршрутизатора: 100.108.1**.1

Я думаю, это может объяснить проблему?

Можете ли вы помочь мне решить эту проблему? Спасибо

Экспресс-код:

      const http = require("http");

const hostname = "127.0.0.1";
const port = 6550;

// Create HTTP server
const server = http.createServer((req, res) => {

   // Set the response HTTP header with HTTP status and Content type
   res.writeHead(200, {'Content-Type': 'text/plain'});

   // Send the response body "Hello World"
   res.end('Hello World\n');
});

// Prints a log once the server starts listening
server.listen(port, hostname, () => {
   console.log(`Server running at http://${hostname}:${port}/`);
})

1 ответ

Я вижу здесь две возможные вещи:

  1. У вас двойное подключение к Интернету, что затруднит переадресацию портов через IPv4, если вообще возможно.

  2. Также вы должны убедиться, что ваш сервер прослушивает не IP 127.0.0.1, а вместо этого 0.0.0.0 (любой IP) или IP-адрес вашей внутренней сети адаптера, я предполагаю 192.168.1.105 .

Другие вопросы по тегам