Ошибка SocketException с кодом: 48 при разрешении MongoDB для удаленных подключений - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть AWS сервер ligthsail, на котором работает Ubuntu. Я только что установил MongoDB, и он отлично работает на локальном компьютере. Теперь я хочу открыть его удаленно, используя порт 27017. Я уже добавил порт в список Networking на консоли AWS и добавил свой publi c IP в файл конфигурации.

Вот моя команда для запуска пн go:

sudo mongod --fork --config /etc/mongod.conf

Это ошибка, которую я получил:

2020-04-07T11:40:24.424+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2020-04-07T11:40:24.424+0000 I CONTROL  [initandlisten] modules: none
2020-04-07T11:40:24.424+0000 I CONTROL  [initandlisten] build environment:
2020-04-07T11:40:24.424+0000 I CONTROL  [initandlisten]     distmod: ubuntu1804
2020-04-07T11:40:24.424+0000 I CONTROL  [initandlisten]     distarch: x86_64
2020-04-07T11:40:24.424+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2020-04-07T11:40:24.424+0000 I CONTROL  [initandlisten] options: { config:     "/etc/mongod.conf", net: { bindIp: "0.0.0.0,my-remote-ip", port: 27017 }, processManagement: {     fork: true, timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "the-path-to-the-db", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2020-04-07T11:40:24.424+0000 E STORAGE  [initandlisten] Failed to set up listener:     SocketException: Cannot assign requested address
2020-04-07T11:40:24.425+0000 I CONTROL  [initandlisten] now exiting
2020-04-07T11:40:24.425+0000 I CONTROL  [initandlisten] shutting down with code:48


И это конфиг mongod:

storage:
  dbPath: the-path-to-the-db
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0,<my-public-ip>


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

Кроме того, я проверил запущенные процессы. MongoDB не работает. Я уверен, что я также ищу на SO и Google, но ничего не смог найти. Кто-нибудь может привести меня, чтобы решить эту проблему, пожалуйста? Спасибо!

1 Ответ

0 голосов
/ 14 апреля 2020

OK. Я добавил

security:
  authorization: "enabled"

в файл конфигурации, а затем настроил ipteables с помощью следующих команд

 sudo iptables -A INPUT -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
 sudo iptables -A OUTPUT  -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT


Видимо, открытия портов на AWS пользовательском интерфейсе было недостаточно.

...