2016-04-06 5 views
2

Я нашел аналогичный сценарий in this topic, но он относится к ssh, и мне нужно перенаправить доступ к веб-серверу.Прямой доступ к веб-сайту за брандмауэром с использованием SSH-туннелирования

Как это выглядит сейчас:

[частный сервер] - позади маршрутизатора и межсетевого экрана, доступ через внешний IP недоступного

[средний сервер] - публичный IP, порты открытого

[пользователь] - подключение через веб-браузер до средний сервер, хотите получить сайт от pr Ивате сервер

Что я уже сделал:

ssh -N -R 8888:localhost:80 [email protected][middle server ip] 

Теперь я могу получить доступ к частный сервер от среднего сервера например. через:

curl http://localhost:8888 

Так что туннель работает нормально.

Проблема заключается в том, когда я (как пользователь) ввести [средний IP-адрес сервера]: 8888, все я получаю это ERR_CONNECTION_REFUSED

Что мне не хватает? Какой-то переадресация портов? Любая помощь будет оценена!

ответ

1

Данное поведение регулируется опцией GatewayPorts (off). С ручной странице ssh_config:

GatewayPorts

Указывает ли удаленные хосты могут подключаться к портам пересылаемых для клиента. По умолчанию sshd (8) связывает удаленные переадресации портов с адресом loopback. Это предотвращает подключение других удаленных хостов к перенаправленным портам. GatewayPorts может использоваться для указания, что sshd должен разрешать удаленные переадресации портов для привязки к адресам без обратной связи, что позволяет другим хостам подключаться. Аргумент может быть «нет», чтобы заставить удаленные пересылки портов быть доступными только локальному хосту, «да», чтобы принудительно перенаправить удаленные пересылки портов на подстановочный адрес или «clientpecified», чтобы клиент мог выбрать адрес, на который пересылка связана. По умолчанию «нет».

Вам нужно положить также

GatewayPorts yes 

к вашему sshd_config и указать локальный адрес в явном виде:

ssh -N -R [middle server ip]:8888:localhost:80 [email protected][middle server ip] 

или

ssh -N -R *:8888:localhost:80 [email protected][middle server ip] 
+1

Это решило проблему, спасибо! Я уже установил GatewayPorts, но сделал это на [private server], поэтому он не работал, как я ожидал. – Mark