如果你在防火墙后面的NAT上,如何使用php xdebug?

sor*_*rin 11 php firewall remote-debugging xdebug

我有以下用于调试PHP应用程序的用例:

  • 开发人员确实拥有私有IP地址
  • 开发人员只能从服务器连接到有限数量的端口,如80,8080,3128,其他端口受到传出防火墙的限制.如果传出请求是HTTP,他仍然可以使用没有此限制的代理.
  • 服务器机器是完全可配置的

在这种情况下可以使用xdebug吗?怎么样?

可以建立VPN,但这不是一个简单的解决方案,所以我更喜欢简化.

sor*_*rin 12

我发现的解决方案是使用PuTTY将端口9000从服务器转发到客户端(IDE).

putty配置截图

只需将Xdebug配置为连接到localhost运行客户端(IDE)的IP地址而不是:

xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_connect_back = 0
Run Code Online (Sandbox Code Playgroud)

一篇很好的文章称为远程调试PHP,其中包含防火墙,以及Xdebug配置和SSH端口转发方法.


OZ_*_*OZ_ 5

另一种变体是使用 SSH 端口转发(也可以在Cygwin中使用)。

只需执行:

ssh -R 9000:127.0.0.1:9000 host.example.com
Run Code Online (Sandbox Code Playgroud)

它创建一个隧道,将远程主机上的端口转发到本地主机上的9000端口。9000

其他一切与 PuTTY 方法中的相同(请参阅sorin的答案)。

  • 参数应该是-R (3认同)