xpra icon
Bug tracker and wiki

Opened 6 months ago

Closed 7 weeks ago

#1335 closed task (worksforme)

provide a system service for the proxy server

Reported by: Antoine Martin Owned by: Smo
Priority: major Milestone: 1.0
Component: server Version: trunk
Keywords: Cc:

Description (last modified by Antoine Martin)

Now that the proxy server can be used for starting new sessions on demand (#1319) and that we have ssl support (#1252) and a default port (#731), it makes sense to have a default service that can be used for all this.
Somewhat related to #1105, #888 and #1334.


  • generate a test certificate
  • install the service files (init and systemd...)

Change History (5)

comment:1 Changed 6 months ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to alas
Summary: provide a service for the proxy serverprovide a system service for the proxy server

Major changesets (there are many more):

  • r14020 + r14022 + r14023: cleanup + preparatory work
  • r14024: generate a test ssl cert (RPM only), r14029 for DEB
  • r14026: systemd + init file and packaging
  • r14045: pidfile support
  • r14081: update firewall during rpm installation (centos7 and fedora)

After installation, there should be a new firewall rule allowing traffic on our port (14500 see #731):

$ sudo iptables -vnL | grep -i 145
    0     0 ACCEPT     tcp  --  *      *              tcp dpt:14500 ctstate NEW

This rule should be deleted when the RPM package is uninstalled.

The service is not started by default at the moment, to change that see Enabling and disabling services during start up in GNU/Linux (instructions vary depending on the init system used by the distribution).

To start the service (these commands should work almost everywhere: fedora, centos, debian, ubuntu, etc):

sudo service xpra start

After that, you should be able to confirm that it is running with:

sudo service xpra status

or with systemd (fedora, centos7):

sudo systemctl status xpra.service

or with systemd it should be listed in the system slice:

$ systemd-cgls
Control group /:
│ └─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
│ ├─avahi-daemon.service
│ │ ├─1140 avahi-daemon: running [desktop.local
│ │ └─1173 avahi-daemon: chroot helpe
│ ├─xpra.service
│ │ └─7249 /bin/python /usr/bin/xpra proxy :14500 --bind-tcp= --auth=sys --tcp-auth=sys --ssl-cert=/etc/xpra/ssl-cert.pem --socket-permissions=666 --daemon=no --log-dir

or on systems with a "/var/run/xpra" directory (those that support tmpfiles.d, see #888):

xpra list

(as any user)

xpra version tcp/


xpra version ssl/ --ssl-server-verify-mode=none

(see #1252 for details)
or even hitting this proxy server with a browser to get the session login page:


In order to use any other sub-commands against this proxy server, you need to authenticate with a system account (the proxy server is configured to use the "sys" authentication module).

xpra start ssl/$USERNAME:$YOURUNIXPASSWORD@ --ssl-server-verify-mode=none --start-child=xterm --exit-with-children

(see #1319 for details, bugs related to connecting or using the proxy server itself do not belong here)

@afarr: just a FYI, feel free to close.

Last edited 6 months ago by Antoine Martin (previous) (diff)

comment:2 Changed 4 months ago by Antoine Martin

Owner: changed from alas to Smo

fallback to firewall-offline-cmd in r14484.

Further notes:

  • to permanently add the rule to another zone, ie "trusted":
    firewall-cmd --add-port=14500/tcp --zone=trusted --permanent
  • the default zone where we add the rule as part of the rpm postinstall is:
    firewall-cmd --get-default-zone

More examples: https://www.certdepot.net/rhel7-get-started-firewalld/.

Last edited 4 months ago by Antoine Martin (previous) (diff)

comment:3 Changed 3 months ago by Antoine Martin

We now also silence the "success" message during RPM (un)install: r14602.

comment:4 Changed 2 months ago by Antoine Martin

Added a wiki page linking back here: wiki/Service.

comment:5 Changed 7 weeks ago by Smo

Resolution: worksforme
Status: newclosed
Note: See TracTickets for help on using tickets.