Как вы можете использовать php xdebug, если вы находитесь на NAT за брандмауэром?

У меня есть следующий вариант использования для отладки PHP-приложения:

  • У разработчика есть частный IP-адрес
  • Разработчик может подключаться только к ограниченному числу портов с сервера, например 80, 8080, 3128, а другие ограничены исходящим брандмауэром. Тем не менее, если исходящие запросы являются HTTP, он может использовать прокси-сервер, который не имеет этого ограничения.
  • серверная машина полностью настраивается

Можно ли использовать xdebug в этом случае? Как?

Можно создать VPN, но это не простое решение, поэтому я бы предпочел упрощенное.

Решение, которое я нашел, это использовать PuTTY для пересылки порта 9000 с сервера на клиент (IDE).

скриншот конфигурации шпули

Просто настройте Xdebug для подключения к localhost вместо IP-адреса, на котором работает ваш клиент (IDE):

 xdebug.remote_host = localhost xdebug.remote_port = 9000 xdebug.remote_connect_back = 0 

Существует хорошая статья под названием « Удаленная отладка PHP» с брандмауэром в пути, описывающим это, а также конфигурацию Xdebug и метод пересылки портов SSH.

Другой вариант – использовать пересылку портов SSH (может использоваться также в Cygwin ).

Просто выполните:

 ssh -R 9000:127.0.0.1:9000 host.example.com 

Он создает туннель, который перенаправляет порт 9000 на удаленный хост на порт 9000 на localhost.

Все остальное такое же, как в методе PuTTY (см. Ответ сорины ).