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

Posted

技术标签:

【中文标题】如果您在防火墙后面的 NAT 上,如何使用 php xdebug?【英文标题】:How can you use php xdebug if you are on NAT behind a firewall? 【发布时间】:2011-04-17 04:19:06 【问题描述】:

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

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

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

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

【问题讨论】:

你读过这个:derickrethans.nl/debugging-with-multiple-users.html 吗?你可能会感兴趣。 【参考方案1】:

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

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

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

a nice article called Remote Debugging PHP with a Firewall in the Way 对此进行了描述,还有 Xdebug 配置和 SSH 端口转发方法。

【讨论】:

【参考方案2】:

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

只需执行:

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

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

其他一切都与 PuTTY 方法相同(参见 sorin 的回答)。

【讨论】:

参数应该是-R 你拯救了我的日子ssssssssssssssss!!!!找了好多地方,你终于救了我!!!!!!

以上是关于如果您在防火墙后面的 NAT 上,如何使用 php xdebug?的主要内容,如果未能解决你的问题,请参考以下文章

如果机器在NAT防火墙后面,可以在传输模式下使用使用AH的IPSEC吗?

如何在 2 个 nat 后面执行 p2p?

两个经过 NAT 的 Skype 节点如何通信

如何在没有 NAT 的情况下连接路由器或防火墙后面的客户端 tcp 端口

Skype 协议和超级节点

如何使用反向 SSH 隧道绕过防火墙和 NAT