Я хочу отладить SSL-соединение, поэтому я последовал ответу на этот вопрос и хотел запустить первый тест:
# openssl s_client -connect SERVER_IP:PORT -state -debug
и получил следующий результат:
socket: Connection refused
connect:errno=111
Я поискал его и обнаружил, что он не имеет ничего общего с SSL, это означает, что либо сервер не работает, либо порт заблокирован брандмауэром. Я зашел на сервер и проверил, что он действительно запущен и что ПОРТ открыт для прослушивания всех IP-адресов:
# netstat -plan | grep PORT
tcp 0 0 0.0.0.0:PORT 0.0.0.0:* LISTEN PID/java
Вот забавная часть: когда я использовал внутренний IP-адрес своего сервера для выполнения указанной выше команды openssl, я получил ожидаемый результат.
Поведение одинаково независимо от того, пытаюсь ли я подключиться к серверу с клиента или с самого сервера.
Я добавил порт в iptables. Вот как они выглядят сейчас:
# iptables -L -v | grep PORT
40 4252 ACCEPT tcp -- any any anywhere anywhere tcp dpt:PORT
0 0 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:PORT
Почему я не могу подключиться к серверу, используя внешний IP-адрес, но он работает с внутренним IP-адресом?
Редактировать: все мои iptables
правила имеют ACCEPT
ключевое слово - команда iptables -L -v | grep REJECT
не дает вывода.