У меня есть тестовое приложение, которое я запускаю локально, и использую удаленную переадресацию портов, чтобы предоставить другим доступ к нему.
Это работало нормально, пока я не установил новый экземпляр сервера на EC2.
Сервер EC2 работает под управлением CentoOS 7. Брандмауэры не запущены, я установил SELinux как разрешающий, я открыл порт в правилах группы безопасности. Я тогда бегу
ssh -v -N -R port_num:localhost:port_num
(где port_num на самом деле номер порта), и я вижу, как устанавливается соединение. Я также проверил netstat на удаленном сервере и вижу номер порта, который прослушивается.
Раньше это работало, но не на этой машине. Я думаю, что это связано либо с EC2, либо с CentOS 7, но у меня кончились вещи, которые можно было бы попробовать.
При запуске tcpdump на удаленном сервере я заметил, что запросы, поступающие на eth0, имеют длину 0. Не знаю, почему и если это не отвлекающий маневр, но стоит упомянуть.
Есть идеи по поводу того, что я упустил?
Спасибо!
ИЗМЕНИТЬ 1
Добавлено быстрое веб-приложение, которое прослушивает порт, который я хочу переадресовать, и показывает сообщение «Hello, World!» страница. Я могу получить к нему доступ без проблем, поэтому порт 8080 на экземпляре EC2 открыт и принимает запросы. Просто не работает переадресация портов.
Я попытался
ssh -v -N -R 0.0.0.0:port_num:localhost:port_num
Но это тоже не помогло.
РЕДАКТИРОВАТЬ 2
Если я запускаю свое веб-приложение локально, запустите ssh -N -R port_num:localhost:port_num
, затем ssh с другого терминала на удаленный сервер, затем curl http://localhost:port_num/test
, Я получаю ответ от моего локального сервера. Значит переадресация работает. Просто запросы, поступающие из внешнего браузера на eth0, не перенаправляются. Не уверен, как это было сделано на старом сервере (он просто работал), есть идеи, что мне делать, чтобы это работало? Опять же, iptables отключен, а также был отключен на старом сервере.
О, глупый я. Я забыл шаг, который нужно установить GatewayPorts on
в sshd_config.
Много шума из ничего. Надеюсь, этот пост поможет кому-то в будущем.