xfreerdp3(1) | xfreerdp3 | xfreerdp3(1) |
NAME
xfreerdp3 - FreeRDP X11 client
SYNOPSIS
xfreerdp3 [file] [options] [/v:server[:port]]
DESCRIPTION
xfreerdp3 is an X11 Remote Desktop Protocol (RDP) client which is part of the FreeRDP project. An RDP server is built-in to many editions of Windows. Alternative servers included ogon, gnome-remote-desktop, xrdp and VRDP (VirtualBox).
OPTIONS
/a:addin[,options], /addin:addin[,options]
/azure:[tenantid:id],[use-tenantid[:[on|off]],[ad:url][avd-access:format string],[avd-token:format string],[avd-scope:format string]
/action-script:file-name
/admin, /console
+aero
/app:program:[path|||alias],cmd:command,file:filename,guid:guid,icon:filename,name:name,workdir:directory,hidef:[on|off]
/assistance:password
/auto-request-control:
+async-channels
+async-update
/audio-mode:mode
+auth-only
/auth-pkg-list:!ntlm,kerberos
-authentication
+auto-reconnect
/auto-reconnect-max-retries:retries
/bpp:depth
/buildconfig
/cache:[bitmap[:on|off],codec[:rfx|nsc],glyph[:on|off],offscreen[:on|off],persist,persist-file:filename]
/cert:[deny,ignore,name:name,tofu,fingerprint:hash:hash as hex[,fingerprint:hash:another hash]]
* deny ... Automatically abort connection if the certificate does not match, no user interaction.
* ignore ... Ignore the certificate checks altogether (overrules all other options)
* name ... Use the alternate <name> instead of the certificate subject to match locally stored certificates
* tofu ... Accept certificate unconditionally on first connect and deny on subsequent connections if the certificate does not match
* fingerprints ... A list of certificate hashes that are accepted unconditionally for a connection
/client-build-number:number
/client-hostname:name
/clipboard:[[use-selection:atom],[direction-to:[all|local|remote|off]],[files-to[:all|local|remote|off]]]
* use-selection:<atom> ... (X11) Specify which X selection to access. Default is CLIPBOARD. PRIMARY is the X-style middle-click selection.
* direction-to:[all|local|remote|off] control enabled clipboard direction
* files-to:[all|local|remote|off] control enabled file clipboard direction (default:on)
-compression, -z
/compression-level:level
+credentials-delegation
/d:domain
-decorations
/disp
/drive:name,path
+drives
/dump:record|replay,file:file[,nodelay]
/dvc:channel[,options]
+dynamic-resolution
/echo, /echo
-encryption
/encryption-methods:[40,][56,][128,][FIPS]
/f
+fipsmode
/floatbar[:sticky:[on|off],default:[visible|hidden],show:[always|fullscreen|window]]
-fonts
+force-console-callbacks
/frame-ack:number
/args-from:file|stdin|fd:number|env:name
/from-stdin[:force]
/gateway:g:gateway[:port],u:user,d:domain,p:password,usage-method:[direct|detect],access-token:token,type:[rpc|http[,no-websockets][,extauth-sspi-ntlm]|auto[,no-websockets][,extauth-sspi-ntlm]]|arm,url:wss://url,bearer:oauth2-bearer-token, /gw:g:gateway[:port],u:user,d:domain,p:password,usage-method:[direct|detect],access-token:token,type:[rpc|http[,no-websockets][,extauth-sspi-ntlm]|auto[,no-websockets][,extauth-sspi-ntlm]]|arm,url:wss://url,bearer:oauth2-bearer-token
/gdi:sw|hw
/geometry
+gestures
/gfx[:[[progressive[:on|off]|RFX[:on|off]|AVC420[:on|off]AVC444[:on|off]],mask:value,small-cache[:on|off],thin-client[:on|off],progressive[:on|off],frame-ack[:on|off]]]
-grab-keyboard
-grab-mouse
/h:height
-heartbeat
/help, /?
+home-drive
/ipv4[:[:force]], /4[:[:force]]
/ipv6[:[:force]], /6[:[:force]]
/jpeg
/jpeg-quality:percentage
/kbd:[layout:[0xid|name],lang:0xid,fn-key:value,type:value,subtype:value,unicode[:on|off],remap:key1=value1,remap:key2=value2,pipe:filename]
* layout: set the keybouard layout announced to the server
* lang: set the keyboard language identifier sent to the server
* fn-key: Function key value
* remap: RDP scancode to another one. Use /list:kbd-scancode to get the mapping. Example: To switch 'a' and 's' on a US keyboard: /kbd:remap:0x1e=0x1f,remap:0x1f=0x1e
* pipe: Name of a named pipe that can be used to type text into the RDP session
/kerberos:[kdc-url:url,lifetime:time,start-time:time,renewable-lifetime:time,cache:path,armor:path,pkinit-anchors:path,pkcs11-module:name]
/load-balance-info:info-string
/list:[kbd|kbd-scancode|kbd-lang[:value]|smartcard[:[pkinit-anchors:path][,pkcs11-module:name]]|monitor|tune|timezones]
/log-filters:tag:level[,tag:level[,...]]
/log-level:[OFF|FATAL|ERROR|WARN|INFO|DEBUG|TRACE]
/max-fast-path-size:size
/max-loop-time:time
+menu-anims
/microphone[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel]], /mic[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel]]
/monitors:id[,id[,...]]
-mouse-motion
+mouse-relative
/mouse:[relative:[on|off],grab:[on|off]]
* relative: send relative mouse movements if supported by server
* grab: grab the mouse if within the window
/multimon[:force]
+multitouch
-multitransport
-nego
/network:[invalid|modem|broadband|broadband-low|broadband-high|wan|lan|auto]
/nsc, /nscodec
/orientation:[0|90|180|270]
+old-license
/p:password
/parallel[:name[,path]]
/parent-window:window-id
/pcb:blob
/pcid:id
/pheight:height
/play-rfx:pcap-file
/port:number
-suppress-output
+print-reconnect-cookie
/printer[:name[,driver[,default]]]
/proxy:[proto://][user:password@]host[:port]
/pth:password-hash, /pass-the-hash:password-hash
/pwidth:width
/rdp2tcp:executable path[:arg...]
/reconnect-cookie:base64-cookie
/redirect-prefer:FQDN|IP|NETBIOS,[...]
/relax-order-checks, /relax-order-checks
/restricted-admin, /restrictedAdmin
/remoteGuard, /remoteGuard
/rfx
/rfx-mode:[image|video]
/scale:[100|140|180]
/scale-desktop:percentage
/scale-device:100|140|180
/sec:[rdp[:[on|off]]|tls[:[on|off]]|nla[:[on|off]]|ext[:[on|off]]|aad[:[on|off]]]
/serial[:name[,path[,driver[,permissive]]]], /tty[:name[,path[,driver[,permissive]]]]
/server-name:name
/shell:shell
/shell-dir:dir
/size:widthxheight or percent%[wh]
/smart-sizing[:widthxheight]
/smartcard[:str[,str...]]
/smartcard-logon[:[cert:path,key:key,pin:pin,csp:csp name,reader:reader,card:card]]
/sound[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel,][latency:latency,][quality:quality]], /audio[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel,][latency:latency,][quality:quality]]
/span
/spn-class:service-class
/ssh-agent, /ssh-agent
/sspi-module:SSPI module path
/winscard-module:WinSCard module path
/disable-output
/t:title, /title:title
-themes
/timeout:time in ms, /timeout:time in ms
/timezone:windows timezone
/tls:[ciphers|seclevel|secrets-file|enforce]
* seclevel:<level>, default: 1, range: [0-5] Override the default TLS security level, might be required for older target servers
* secrets-file:<filename>
* enforce[:[ssl3|1.0|1.1|1.2|1.3]] Force use of SSL/TLS version for a connection. Some servers have a buggy TLS version negotiation and might fail without this. Defaults to TLS 1.2 if no argument is supplied. Use 1.0 for windows 7
-toggle-fullscreen
/tune:setting:value,setting:value
/u:[[domain]user|user[@domain]]
+unmap-buttons
/usb:[dbg,][id:vid:pid#...,][addr:bus:addr#...,][auto]
/v:server[:port]
/vc:channel[,options]
/version
/video
/prevent-session-lock[:time in sec]
/vmconnect[:vmid]
/w:width
-wallpaper
+window-drag
/window-position:xposxypos
/wm-class:class-name
/workarea
KEYBOARD SHORTCUTS
<Right CTRL>
If keyboard is grabbed the local system shortcuts do no longer work and are sent to the remote system.
If the Mouse is grabbed (optional) local gesture detection does not work and the mouse might not be able to leave the RDP window. Mouse events are not altered.
<CTRL>+<ALT>+<Return>
<CTRL>+<ALT>+<m>
<CTRL>+<ALT>+c
<CTRL>+<ALT>+<d>
Action Script
ENVIRONMENT VARIABLES
wlog environment variable
GLOBAL CONFIGURATION
Format and Location:
The location is /etc/FreeRDP/FreeRDP/certificates.json
File format is JSON
Supported options:
deny
Deny the certificate if the check against system SSL store was not successful
ignore
Ignore certificate failures, just ignore the certificate
deny-userconfig
If the checks in the global configuration do not accept the certificate do not ask the user
certificate-db
JSON array
type
a string identifying the hash algorithm used, e.g. sha256
hash
a string of hex integer values representing the certificate hash, e.g. 0123456789abcdef
EXAMPLES
#!/bin/bash # we got a key combination if [ "$1" = "key" ]; then # we only got one argument 'key' # list all supported combinations with echo if [ $# -eq 1 ]; then echo "ctrl+alt+f1" echo "ctrl+alt+f2" else # We want the action for a single combination # use 'key-local' to not forward to RDP session if [ "$2" = "ctrl+alt+f1" ]; then echo "key-local" fi if [ "$2" = "ctrl+alt+f2" ]; then echo "/usr/local/bin/somescript.sh" fi fi fi if [ "$1" = "xevent" ]; then if [ $# -eq 1 ]; then echo "FocusIn" echo "SelectionClear" else if [ "$2" = "SelectionNotify" ]; then echo "/usr/local/bin/someprogram" fi fi fi
The return value of the program determines if the key is handled locally or remotely (0 for local, > 0 for remote, < 0 for errors)
xfreerdp3 connection.rdp /p:Pwd123! /f
xfreerdp3 /u:USER /size:50%h /v:rdp.contoso.com
xfreerdp3 /u:CONTOSO\\JohnDoe /p:Pwd123! /v:rdp.contoso.com
xfreerdp3 /u:JohnDoe /p:Pwd123! /w:1366 /h:768 /v:192.168.1.100:4489
xfreerdp3 /u:JohnDoe /p:Pwd123! /vmconnect:C824F53E-95D2-46C6-9A18-23A5BB403532 /v:192.168.1.100
+clipboard
/drive:home,/home/user
/smartcard:<device>
/printer:<device>,<driver>
/serial:<device>
/parallel:<device>
/sound:sys:alsa
/microphone:sys:alsa
/multimedia:sys:alsa
/usb:id,dev:054c:0268
LINKS
AUTHOR
The FreeRDP Team
2025-06-27 | freerdp |