What the proxy does
- Accepts RDP connections from clients (the “front” side)
- Connects to a configured target RDP server (the “back” side)
- Forwards graphics, input, and channel data between the two sides
- Exposes hook and filter callbacks that loadable modules can use to inspect or modify traffic
Use cases
Building
freerdp-proxy binary and the libfreerdp-proxy library.
Running the proxy
Configuration file
The proxy is configured with an INI file. All sections and keys are described below.When
FixedTarget=false a loaded module must set target_address and target_port in the proxyFetchTargetEventInfo struct inside its ServerFetchTargetAddr filter callback, otherwise the connection is aborted.Proxy server API
Embed the proxy in an application using the public C API ininclude/freerdp/server/proxy/proxy_server.h:
Additional config helpers
Module API
Modules extend the proxy at runtime. A module is a shared library (.so / .dll) that exports a single entry point:
proxyPlugin struct:
Hook types
Hooks are called for lifecycle events. ReturningFALSE aborts the connection.
Filter types
Filters are called for data events. ReturningFALSE drops (does not forward) the event.
