Как сделать приложение Spring Boot доступным по внешнему IP-адресу сервера? - PullRequest
0 голосов
/ 08 января 2019

Я новичок в Spring Boot. У меня есть приложение REST API, написанное на Spring Boot. Когда я выполняю свой Spring Boot JAR, все в порядке, и я могу получить доступ к REST API с адресом localhost вместо действительного:

http://localhost:8083/articles

Но когда я пытаюсь получить доступ к REST API через мой внешний IP-адрес, я не могу этого сделать:

http://100.90.80.70:8083/articles
Команда

netstat -antu в терминале Linux дает мне следующий вывод:

Active Internet connections (servers and established)
Proto   Recv-Q  Send-Q  Local Address  Foreign Address  State
tcp6       0      0      :::8083            :::*        LISTEN

Как я понимаю, мое приложение доступно только в localhost, потому что оно не имеет foreign address.

Мой application.properties файл содержит только эту строку:

server.port=8083

Также, когда я пытаюсь добавить server.address строку к application.properties, вот так:

server.address=100.90.80.70
server.port=8083

У меня есть следующее Exception: Caused by: java.net.BindException: Cannot assign requested address.

Итак, мой вопрос: как сделать приложение Spring Boot доступным по внешнему IP-адресу сервера? Спасибо.

1 Ответ

0 голосов
/ 08 января 2019

Как сказал @Mark, проблема в брандмауэре. Я открыл порт 8083 в настройках брандмауэра и теперь могу получить доступ к своему приложению REST API по внешнему IP-адресу:

http://100.90.80.70:8083/articles

Команда Linux для проверки состояния брандмауэра:

sudo ufw status verbose

Открыть 8083 порт для удаленного доступа по протоколу TCP:

sudo ufw allow 8083/tcp

Дополнительные настройки здесь: https://www.cyberciti.biz/faq/how-to-open-firewall-port-on-ubuntu-linux-12-04-14-04-lts/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...