Search code examples
phpfirewallxdebugremote-debugging

How can you use php xdebug if you are on NAT behind a firewall?


I have the following use case for debugging a PHP application:

  • The developer does have a private IP address
  • The developer can connect only to a limited number of ports from the server, like 80, 8080, 3128, others being limited by the outgoing firewall. Still if the outgoing requests are HTTP he could use a proxy that does not have this limitation.
  • the server machine is fully configurable

Is is possible to use xdebug in this circumstance? How?

It is possible to establish a VPN but this is not an easy solution so I would prefer a simplified one.


Solution

  • The solution I found was to use PuTTY to forward the port 9000 from the server to the client (IDE).

    putty configuration screenshot

    Just configure the Xdebug to connect to the localhost instead of an IP address your client (IDE) is running on:

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

    There is a nice article called Remote Debugging PHP with a Firewall in the Way describing this and also the Xdebug configuration and SSH port forwarding method.