[go: nahoru, domu]

Skip to content

Latest commit

 

History

History
 
 

tunnel-server

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

How it works

Tunnel server/client use websocket protocol.

For example:

  1. Arthas tunnel server listen at 192.168.1.10:7777

  2. Arthas tunnel client register to the tunnel server

    tunnel client connect to tunnel server with URL: ws://192.168.1.10:7777/ws?method=agentRegister

    tunnel server response a text frame message: response:/?method=agentRegister&id=bvDOe8XbTM2pQWjF4cfw

    This connection is control connection.

  3. The browser try connect to remote arthas agent, start connect to tunnel server with URL: 'ws://192.168.1.10:7777/ws?method=connectArthas&id=bvDOe8XbTM2pQWjF4cfw

  4. Arthas server find the control connection with the id bvDOe8XbTM2pQWjF4cfw, then send a text frame to arthas client: response:/?method=startTunnel&id=bvDOe8XbTM2pQWjF4cfw&clientConnectionId=AMku9EFz2gxeL2gedGOC

  5. Arhtas tunnel client open a new connection to tunnel server, URL: ws://127.0.0.1:7777/ws/?method=openTunnel&clientConnectionId=AMku9EFz2gxeL2gedGOC&id=bvDOe8XbTM2pQWjF4cfw. This connection is tunnel connection.

  6. Arhtas tunnel client start connect to local arthas agent, URL: ws://127.0.0.1:8563/ws. This connection is local connection.

  7. Forward websocket frame between tunnel connection and local connection.

browser <-> arthas tunnel server <-> arthas tunnel client <-> arthas agent