http://localhost:3000 работает, но http://127.0.0.1:3000 не работает
Я создаю приложение Rails на моей локальной машине разработчика. При запуске моего локального сервера я могу получить доступ http://localhost:3000
без проблем. Тем не менее, когда я пытаюсь перейти к http://127.0.0.1:3000
Я получаю ERR_CONNECTION_REFUSED
, Обычно меня не волнует эта проблема, но когда я пытаюсь получить доступ к туннелю, используя ngrok
Я получаю эту ошибку:
Tunnel <URL> unavailable
Unable to initiate connection to 127.0.0.1:3000. A web server must be running on port 127.0.0.1:3000 to complete the tunnel.
Я сделал чистую установку OS X этим утром, и единственное, что работает в моей системе, - это то, что находится в моем файле readme для dotfiles. Вот мой полный /etc/hosts
файл:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
2 ответа
В вашем файле hosts у вас есть разрешение как IPv4, так и IPv6. Большинство операционных систем сегодня предпочитают IPv6, если доступно. Так как localhost работает, а 127.0.0.1 - нет, это может быть вашей проблемой.
В этом случае я бы проверил две вещи:
- Проверьте, работает ли сервер / служба только на IPv6. Если это так, измените его так, чтобы он работал как на IPv4, так и на IPv6.
- Проверьте правила брандмауэра, чтобы убедиться, что они разрешают доступ к localhost на этом порту как для IPv4, так и для IPv6.
TLDL; убедитесь сsudo lsof -i tcp:<port>
что на том же порту не работает другой процесс.(sudo if necessary) kill -9
это если есть.
У меня только что возникла эта проблема, и другой ответ не слишком помог мне. У меня был обратный прокси-сервер nginx, а также внешние и внутренние серверы, работающие в контейнерах докеров.
Был еще один процесс, запущенный на том же порту пользователем, который по какой-то причине не испортил Docker Compose из привязки порта. Когда я нажимал на адресную строку, она правильно направлялась наnginx
работает из моих контейнеров. Когда я пошёл на это не хотел.
Я заметил эту проблему, когда даже после закрытия nginx в моей домашней установке и в моем контейнере докеров, на котором работал nginx, я все еще получал 502 Bad Gateway от nginx как в Chrome, так и в FireFox.
Проверив 8082 (С SUDO) , я увидел этоroot
был процесс, работающий на том же порту. После завершения этого процесса я смог снова подключиться к своим службам докеров вместе с .
Я предполагаю, что на самом деле это был переход к этому процессу (143 ниже), а не к моему докер-контейнеру, поэтому на самом деле я запускал два разных процесса веб-сервера с помощью127.0.0.1
иlocalhost
. Очень странно! Если кто-то умнее меня знает, как это вообще возможно, прокомментируйте :)! Вероятно, это связано с ответом выше.