почему я не могу получить доступ только к порту from localhost?

Я пытаюсь настроить elasticsearch на моей виртуальной машине redhat, выпущенной mapR. Он поставляется с предварительно загруженной экосистемой mapR. Я установил elasticsearch через yum.

Я могу слушать его изнутри vm:

[root@maprdemo elasticsearch]# curl -XGET 'localhost:8080/?pretty'
{
  "name" : "QYCiQJi",
  "cluster_name" : "sdc-search",
  "cluster_uuid" : "bMSLPA3uR5WKbtwKP0Sl7g",
  "version" : {
    "number" : "5.0.1",
    "build_hash" : "080bb47",
    "build_date" : "2016-11-11T22:08:49.812Z",
    "build_snapshot" : false,
    "lucene_version" : "6.2.1"
  },
  "tagline" : "You Know, for Search"
}

... но не извне машины. Я могу получить доступ к другим портам. s широковещательная передача, такая как пользовательский интерфейс HUE извне виртуальной машины, поэтому я считаю, что существует некоторая проблема с брандмауэром.

У меня нет определенных правил iptables:

[root@maprdemo elasticsearch]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Что-то, что я заметил при отладке:

[root@maprdemo elasticsearch]# netstat -anp | grep 8080
tcp        0      0 :::18080                    :::*                        LISTEN      16987/java
tcp        0      0 ::ffff:127.0.0.1:8080       :::*                        LISTEN      31852/java

//A Port im able to access from outside the machine fine
[root@maprdemo elasticsearch]# netstat -anp | grep 8443
tcp        0      0 :::8443                     :::*                        LISTEN      13569/java

Порт, который я могу просматривать за пределами machine (8443) выглядит немного иначе при проверке netstat.

Я просто не уверен, где еще можно отладить. Если бы кто-нибудь мог указать мне направление для решения этой проблемы, это было бы здорово. Я всего лишь разработчик и мои знания в области сетей ограничены.

0
задан 22 November 2016 в 22:47
1 ответ

Вы видите фильтр iptables по умолчанию только с помощью команды, которую вы использовали, так что, возможно, она все еще в игре. Взгляните на очень хорошо сформулированные ответы в этом потоке для опций iptables (очень быстро попробуйте 'iptables -S', которые, как мне кажется, должны показать вам все): https://unix.stackexchange.com/questions/205867/viewing-all-iptables-rules

Если не iptables, то иногда selinux вызывает озорство, поэтому отключение его во время тестирования может быть опцией ('setenforce 0'). Вы можете проверить этот текущий статус с помощью 'sestatus'. Для повторного включения используйте 'setenforce 1' или перезагрузка будет повторена.

И последнее, но не менее важное, и по мере того, как я набираю это, я понимаю, что это может быть ответ, проверьте, какой IP адрес прослушивается службой. Я не знаком с этим приложением, но в общем, вы можете настроить прослушивание сервиса на определенном порту только для локальных подключений, так что это может быть просто нужное вам изменение конфигурации. На самом деле, перечитывая ваш пост, наличие адреса обратного шлейфа (127.0.0.1) в выводе netstat для порта 8080, который вы разместили, заставляет меня задуматься, не происходит ли это именно так.

1
ответ дан 4 December 2019 в 16:26

Теги

Похожие вопросы