Назад | Перейти на главную страницу

Почему openssl работает только с внутренним IP?

Я хочу отладить 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 не дает вывода.