Tunneling provides a means of persistent connection between Zend Studio and a remote server situated behind a Firewall, NAT or in a private network. After creating a Tunnel, all communication between Zend Studio and the server can go through that tunnel, instead of assigning more communication ports for the Debug/Profile Sessions made on the remote server.
A communication tunnel cannot currently be created to a Windows server.
Zend Debugger Tunneling
The persistent connection between Zend Studio and a remote server operates even when separated by a firewall.
The advantage of this method is that it is possible to use the Zend Studio Integration on several
nodes at once. For example, debugging an entire cluster of machines behind
a load-balancer over a single debugger connection to Zend Server's
Studio Server component.
The technology is based on two functional elements:
The Zend Studio that includes an internal Web server that listens on the local host on a specific Auto Detection port.
Zend Server automatically evaluates Zend Studio’s Auto Detection port, by evaluating Zend Studio’s settings. These are the Tunnel Settings that are defined in Zend Server.
When debugging or profiling files on a remote server which is behind a firewall or other security device.
Your server must be running the Zend
Debugger or Xdebug in order for remote debugging and
profiling capabilities to function.
The Zend Debugger comes bundled with
Establishing communication between Zend Studio and Zend Server when Zend Server is running on a remote server which is behind a firewall or other security device. The communication between Zend Studio and Zend Server facilitates the integration that combines Zend Server's event reporting capabilities with Zend Studio’s editing, debugging and profiling features. This enables the viewing and debugging/profiling of Zend Server events in Zend Studio .
See Zend Server Integration for more information.
To find out whether your server is situated behind a firewall, contact your System Administrator.
Secure Shell (SSH) is a network protocol for secure data communication between two networked computers - a server and a client, that connects via a secure channel over an insecure network. Meant to solve connectivity problems, SSH avoids security issues in firewalls or private networks.
SSH tunneling in Zend Studio can be configured for each server separately through server configuration.
To debug using an SSH tunnel in Zend Studio, it is required to define at least one port forwarding. An SSH tunnel can be created using the following port forwarding mechanisms:
- Local port forwarding
- Remote port forwarding
When Zend Studio connects to the local port (local endpoint) of the SSH tunnel and transfers data, the data will be forwarded to the remote end by translating the host and port values to those of the remote end of the channel.
The most common is remote port forwarding with following settings:
- Local Address - 127.0.0.1
- Local Port - Debugger port (by default 10137) (Prefences | Installed Debuggers | Configure | Debug Port).
- Remote Port - The same as the local one (verify that it is not reserved on the server side).
See Setting Up SSH Tunneling for more information.