Как создать локальный сервер без использования ngrok? - PullRequest
0 голосов
/ 01 октября 2018

Я использую NGRok в качестве сервера для моего чата.Итак, я хочу создать локальный сервер, используя мой статический IP-адрес и хост, на котором есть чат-бот.Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 01 октября 2018

Это зависит от специфики вашего чат-бота.Я предполагаю, что он ведет себя как HTTP-сервер.

Вы должны убедиться, что применяются следующие критерии:

  • Убедитесь, что ваш сервер также прослушивает ваш внешний интерфейс, а не только вашлокальный интерфейс.В Linux вы можете, например, использовать netstat -atulpen, чтобы проверить это.Если ваш процесс указан с состоянием LISTEN и локальным адресом :::<PORT> или 0.0.0.0:<PORT>, то он прослушивает все интерфейсы.Если локальный адрес является вашим внешним IP-адресом, это тоже хорошо!Если вы видите здесь что-то еще, проверьте свой код на утверждение, где вы назначаете порт своему серверу.Здесь вы также можете настроить хост для прослушивания, для которого вы можете задать неопределенный адрес (:: или 0.0.0.0) для прослушивания всех интерфейсов.
  • Убедитесь, что при использовании брандмауэра онне блокирует внешний доступ к вашему серверу.Это зависит от вашей настройки, и я бы посоветовал также проверить руководство вашего брандмауэра о том, как это сделать.В Linux вы обычно используете ufw в качестве интерфейса для iptables или используете его напрямую.
  • Убедитесь, что ваш статический IP-адрес доступен для общественности (если вы хотите получить доступ к своему серверу из общедоступного Интернета).Многие интернет-провайдеры не предлагают клиентам публичный адрес IPv4, но вместо этого используют NAT, чтобы предложить вам доступ к Интернету IPv4.Чтобы убедиться в этом, вы можете использовать сайт, например ifconfig.co, чтобы увидеть ваш публичный IP-адрес, и если он совпадает с вашим статическим IP-адресом, он должен работать.Если IP-адреса не совпадают, у вас может быть только статический IP-адрес внутри домашней сети, но не тот, который публично направляется в / из Интернета.Если адрес, показанный ifconfig.co, совпадает с IP-адресом вашего маршрутизатора, вы можете включить переадресацию портов в маршрутизаторе на хост, на котором работает ваш сервер.Это, однако, сильно зависит от того, как настроена ваша сеть.

Если все это применимо, вы сможете получить доступ к серверу, используя ваш публичный ip и указанный порт.Но вы можете подумать о защите соединения, используя HTTPS вместо простого HTTP.В зависимости от специфики вашей настройки вы сможете найти в Интернете множество руководств о том, как этого добиться.Всего несколько указателей:

  • Вам нужен ключ TLS и сертификат для вашего хоста.Ключ, который вы должны сгенерировать для себя, и сертификат может быть либо самоподписанным, либо выданным ЦС, например, let-encrypt.
  • Затем вам нужно либо изменить свое приложение, чтобы использовать HTTP вместо HTTP илиизмените ваше приложение, чтобы прослушивать только локальные соединения и размещать его за обратным прокси-сервером, который выполняет SSL-завершение для васДля этого nginx и apache являются допустимыми опциями с различными ресурсами в Интернете о том, как их настроить.
...