Обнаруженная ошибка была: набрать tcp [:: 1]: 3000: getsockopt: соединение отклонено

#ruby-on-rails #ruby #ngrok

#ruby-on-rails #ruby #ngrok

Вопрос:

Я работаю над тем, чтобы webhook приземлился в приложении rails. Мой rails-сервер запущен, и я уже подключился к ngrok и внешнему приложению. Но эти ошибки указывают на то, что мое приложение не запускается.

localhost:3000 запускается, и я могу получить webhooks для ngrok. В чем дело?


Соединение с http://9xxxxxx5.ngrok.ввод-вывод был успешно туннелирован к вашему клиенту ngrok, но клиенту не удалось установить соединение с локальным адресом localhost: 3000.

Убедитесь, что веб-служба запущена на localhost: 3000 и что это действительный адрес.

Обнаруженная ошибка была: набрать tcp [:: 1]: 3000: getsockopt: соединение отклонено


После того, как я вижу localhost: 3000, запускается приложение rails. Почему не удалось подключиться….

Вот результат ps aux | grep ruby .

 user               63542   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/assets
user               63541   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/channels
user               63540   0.0  0.0  4298800     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/test/mailers/previews
user               63539   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.04 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/uploaders
user               63538   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/services
user               63537   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/models
user               63536   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/mailers
user               63535   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/jobs
user               63534   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/helpers
user               63533   0.0  0.0  4306992     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/controllers
user               63532   0.0  0.0  4298800     40 s000  S     7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/db
user               63531   0.0  0.0  4298800     40 s000  S     7:00PM   0:00.06 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/config/locales
user               64927   0.0  0.0  4258736    192 s002  R     7:42PM   0:00.00 grep ruby
  

Обновить

Я пытался уничтожить последнюю. Но я не мог, потому что номер процесса каждый раз является случайным, как показано ниже:

И я все еще не мог подключить ngrok….

Комментарии:

1. Можете ли вы опубликовать полные ошибки обратного отслеживания с вашего сервера rails в вашем локальном терминале?

2. Спасибо за ваш комментарий. Но я не смог найти никаких ошибок на сервере rails, потому что эта ошибка может возникнуть из-за того, что ngrok не подключен к rails.

3. что вы имеете в виду под click localhost:3000 ?

4. введите это в терминале и вставьте свой вывод в свой вопрос. ps aux | grep ruby

5. @lacostenycoder Большое спасибо. Я добавил результат в вопросы.

Ответ №1:

Спасибо @lascostenycoder

Я так удивлен, что смог исправить это после sudo vi /etc/hosts . Я редактировал для других проектов с помощью MAMP. Поэтому я не мог этого сделать.

Спасибо за вашу помощь 🙂

Комментарии:

1. На самом деле я думал об этом вчера, но не уверен, почему я не предложил это проверить. Я обновил свой ответ, поскольку я должен был упомянуть и это.

Ответ №2:

Вам нужно добавить порт в вашу команду ngrok, локальная разработка rails по умолчанию равна 3000

 ngrok http 3000
  

Затем вы должны иметь возможность ввести свой адрес ngrok в вашем браузере

 http://xxxxxx.ngrok.io/
  

Единственный способ, которым я могу воспроизвести вашу ошибку, — это остановить мой rails-сервер, затем, когда я пытаюсь открыть URL ngrok, я получаю вашу ошибку. Таким образом, это означает, что либо ваш сервер НЕ запущен, либо ngrok не может подключиться к нему.

ОБНОВЛЕНИЕ 2

Убедитесь, что в /etc/hosts вас ничего не происходит, что могло бы вызвать проблему.

Обновить

Убедитесь, что у вас не запущены какие-либо мошеннические процессы ruby. На основе вашего обновленного комментария запустите это, чтобы уничтожить их всех

 ps aux | grep ruby | awk '{print $2}' |  xargs kill -9
  

Или попробуйте посмотреть, является ли проблема spring:

 spring status
spring stop
  

Затем проверьте и убедитесь, что все было уничтожено, затем начните заново с шага 1.

 ps aux | grep ruby
  

Это может быть что-то специфичное для вашего приложения / конфигурации? Поэтому попробуйте отключить все ваши работающие серверы rails, если вы не уверены, перезагрузите свой компьютер. Затем перейдите в новую папку проекта, просто добавьте новое приложение rails и, как только оно будет запущено, попробуйте ngrok еще раз и посмотрите, работает ли оно. Также убедитесь, что вы используете http и https в вашей команде ngrok.

Комментарии:

1. Спасибо за ваш комментарий. Я запускаю ngrok http 3000 , а затем я проверил xxxx.ngrok.io отображается в терминале. Но это не сработало бы.

2. @k10a ваш сервер rails запущен в другом терминале перед запуском ngrok ? И, конечно, xxxx это подделка, вы будете получать новый случайный префикс хэша при каждом запуске нового ngrok

3. Да, я запустил rails server до ngrok и заменил с xxxx на собственный URL ngrok.

4. @k10a как вы запускаете rails server?

5. Спасибо за вашу помощь. В termnial, $ rails s как обычно.