Skip to content

How to use this project to capture video of an RDP session? #162

@sdbbs

Description

@sdbbs

I have managed to successfully compile redemption on Ubuntu 20.04 ( see also https://unix.stackexchange.com/questions/734205/dh-install-cannot-find-files-tried-in-debian-buildtmp-but-files-exist-in-debi ), but now I realize, I have no idea how to use it.

What I'm interested in, is capturing my session with a remote PC as video. In the session, I run a couple of graphics/CPU intensive apps, so if I start a screen capture like OBS Studio along with remote desktop (VNC or RDP) everything grinds down to a halt. The remote PC is Windows 10, so RDP is behaving a lot more responsive (as far as I can see desktop decorations etc are removed) even when the intensive applications run, and this is why I want to try capturing the RDP session as video.

I have seen in the README that there are possibilities to capture an RDP session to a video, but I don't get how/what I have to set up, to get a connection to my target server, and capture that session as a video.

Yes, I have seen How to use this project · Issue #25 · wallix/redemption, and I'm still not getting it.

RTFM. Haven't you found README.md ?

Yes, I have, multiple times - still not getting it.

So, I can see there is a program rdpproxy. Just by the naming, I would have imagined, it would have had a local port (maybe 3389), and then I'd specify target address and port - and then I could use my preferred RDP software (remmina) to connect to the proxy, which would have then forwarded/proxied usernames/passwords and traffic between my remmina on my Ubuntu, and the target remote server; and while doing that, it could have captured something that could be converted to video.

However, that is not how things work; for one:

$ rdpproxy --help
Usage: rdpproxy [options]

  -h, --help                          produce help message
  -v, --version                       show software version
  -k, --kill[={on|off}]               shut down rdpproxy
  -n, --nodaemon[={on|off}]           don't fork into background
  -u, --uid=<uid>                     run with given uid
  -g, --gid=<gid>                     run with given gid
  -c, --check[={on|off}]              check installation files
  -f, --force[={on|off}]              remove application lock file
  -F, --ignore-lock-file[={on|off}]   ignore application lock file
  -N, --nofork[={on|off}]             not forkable (debug)
  --config-file=<path>                use an another ini file
  --print-spec                        Show file spec for rdpproxy.ini
  --print-rdp-cp-spec                 Show connection policy spec for rdp protocol
  --print-jhrdp-cp-spec               Show connection policy spec for jhrdp protocol
  --print-vnc-cp-spec                 Show connection policy spec for vnc protocol
  --print-cp-mapping                  Show connection policy mapping for sesman
  --print-default-ini                 Show default rdpproxy.ini

... rdpproxy has no command options for setting any ports.

So, the readme says:

Run ReDemPtion

To test it, executes:

$ python tools/passthrough/passthrough.py

# /usr/local/bin/rdpproxy -nf

Now, at that point you'll just have two servers waiting for connections not much fun. You still have to run some RDP client to connect to proxy. Choose whichever you like xfreerdp, rdesktop, remmina, tsclient on Linux or of course mstsc.exe if you are on windows. All are supposed to work. If some problem occurs just report it to us so that we can correct it.

Ok, I did that on the PC, say, 192.168.0.10; and then from 192.168.0.12 I run remmina, and intiate RDP connection to 192.168.0.10:3389; I get this:

image

Ok, I did not expect this; what makes this screen, passthrough.py or rdpproxy -nf?

In any case, one of those programs creates the screen - so what does that mean, that rdpproxy proxies 127.0.0.1 to ... 127.0.0.1?

Well, that is all fine as a starting example, however it should have been written in the README what should be expected of this example.

But then, good that I know how the example works now - but how do I use this for my use case? That is, how do I proxy 127.0.0.1 (current machine) to public IP of remote machine, as in example.com:3389? How can I specify a target port that is not 3389 but maybe due to port forwarding it is, say, 13389 (so, example.com:13389)? And how do I capture a video (or rather, as per README, a .mwrm or .wrm log file, which can thereafter be converted to video)?

If rdpproxy cannot be used directly for this purpose, are there other programs in this project that could be used instead?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions