[X2Go-Dev] x2gohtmlclient, x2gowswrapper, x2gowebrpc

Ulrich Sibiller ulrich.sibiller at gmail.com
Thu Oct 28 12:36:31 CEST 2021


Htmlclient will only work with x2gokdrive, not with nxagent.

Uli

Shea Tomsin <STomsin at econolite.com> schrieb am Do., 28. Okt. 2021, 11:08:

> Hi
>
> tl;dr: x2gohtmlclient sends websocket input that nxagent rejects, then
> aborts on Debian 11 and Ubuntu 20.04.03; e.g.
>
> websockify records
> "
> var VNC_frame_data = [
> '}3}6ba1f53e7eb3536232eeff332bd49336',
>
> '}3}\x07\x00\x00\x00\x00\x05\x98\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
> "
>
> nxagent reports
> Loop: WARNING! Non printable character decimal '7' received in remote data
> from FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Loop: WARNING! Non printable character decimal '5' received in remote data
> from FD#8.
>
> then nxagent aborts
> Error: Failure negotiating the session in stage '7'.
> Error: Aborting session with 'Unable to open display
> 'nx/nx,options=/tmp/.x2go-user/C-user-50-1634698056_stDGNOME_dp24/options:50''.
> Session: Aborting session at 'Tue Oct 19 22:48:16 2021'.
>
> I saw https://lists.x2go.org/pipermail/x2go-dev/2021-June/013764.html so
> I tried both Debian 11 and Ubuntu 20.04.03 but same failure on both.
>
> I'm new to x2go and the x2goclient works great so maybe this is an
> x2gohtmlclient et. al. issue?  Perhaps this is a known issue or a
> misconfiguration on my part with a quick and easy answer.
>
> Many thanks in advance,
>
> Shea
>
>
> I was trying to follow:
> https://wiki.x2go.org/doku.php/wiki:advanced:x2gohtmlclient on a Ubuntu
> 20.04.03 LTS (then later a Debian 11) minimal desktop and I have distilled
> the wiki instructions to:
>
> # ===============
> # Ubuntu: Install Software
> # ===============
> sudo apt install -y \
> fcgiwrap \
> g++ \
> git \
> libcgi-pm-perl \
> libencode-perl \
> libexpect-perl \
> libfile-touch-perl \
> libjson-perl \
> make \
> minify \
> nginx-full \
> qt5-default \
> qt5-qmake \
> websockify \
> x2goserver \
> ;
>
> # ===============
> # Debian: Install Software
> # ===============
> sudo apt install -y \
> fcgiwrap \
> g++ \
> git \
> libcgi-pm-perl \
> libencode-perl \
> libexpect-perl \
> libfile-touch-perl \
> libjson-perl \
> make \
> minify \
> nginx-full \
> qt5-qmake \
> qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools \
> ssl-cert \
> websockify \
> x2goserver \
> ;
>
> # ===============
> # Build and install x2gohtmlclient, x2gowswrapper, x2gowebrpc
> # ===============
> mkdir ${HOME}/x2go;
> mkdir ${HOME}/x2go/deploy;
>
> #
> # Build: x2gowswrapper
> #
>
> cd ${HOME}/x2go;
> [ -d 'x2gowswrapper' ] || git clone git://code.x2go.org/x2gowswrapper.git;
> cd x2gowswrapper;
>
> cat << "END" | patch -p 1
> diff --git a/x2gowswrapper.cpp b/x2gowswrapper.cpp
> index 91922e7..07fa50e 100644
> --- a/x2gowswrapper.cpp
> +++ b/x2gowswrapper.cpp
> @@ -95,6 +95,7 @@ void X2GoWsWrapper::initialize()
>      QStringList procargs;
>
>      procargs<<"--verbose";
> +    procargs<<"--record"<<"/var/log/x2gows/websockify."+wsPort;
>      if(ssl_cert.length() && ssl_key.length())
>      {
>          procargs<<"--cert"<< ssl_cert <<"--key"<< ssl_key;
> END
>
> qmake && make;
>
> install -D -d ${HOME}/x2go/deploy/usr/bin;
> install -t ${HOME}/x2go/deploy/usr/bin x2gowswrapper;
>
> #
> # Build: x2gohtmlclient
> #
>
> cd ${HOME}/x2go;
> [ -d 'x2gohtmlclient' ] || git clone git://
> code.x2go.org/x2gohtmlclient.git;
> cd x2gohtmlclient;
> ./minify.sh;
>
> install -D -d ${HOME}/x2go/deploy/etc;
> ( cd conf; tar c nginx | tar x -C ${HOME}/x2go/deploy/etc/; );
>
> # make externally available
> sed -i -r -e 's/127.0.0.1/0.0.0.0/' -e 's/::1/::/'
> ${HOME}/x2go/deploy/etc/nginx/sites-available/x2gohtmlclient-demo.conf;
> sed -i -r -e 's/127.0.0.1/0.0.0.0/' -e 's/::1/::/'
> ${HOME}/x2go/deploy/etc/nginx/snippets/x2gohtmlclient-wswrapper.conf;
>
> install -D -d ${HOME}/x2go/deploy/var/log/nginx;
> install -D -d ${HOME}/x2go/deploy/var/log/x2gows;
>
> install -D -d ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/demo;
> install -t ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/demo index.html;
> install -t ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/demo
> x2gokdriveclient.html;
>
> install -D -d ${HOME}/x2go/deploy//usr/share/x2gohtmlclient/;
> install -t ${HOME}/x2go/deploy//usr/share/x2gohtmlclient
> x2gokdriveclient.html;
>
> install -D -d ${HOME}/x2go/deploy/usr/share/javascript/x2gokdriveclient;
> install -t ${HOME}/x2go/deploy/usr/share/javascript/x2gokdriveclient
> dist/x2gokdriveclient.min.js
>
> install -D -d ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/img/;
> install -t ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/img
> img/buttons/svg/*;
> install -t ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/img
> img/buttons/png/*;
> install -t ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/img
> img/backgrounds/svg/*;
>
> install -D -d ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/css/;
> install -t ${HOME}/x2go/deploy/usr/share/x2gohtmlclient/css css/*;
>
>
> #
> # Build: x2gowebrpc
> #
>
> cd ${HOME}/x2go;
> [ -d 'x2gowebrpc' ] || git clone git://code.x2go.org/x2gowebrpc.git
> cd x2gowebrpc;
>
> install -D -d ${HOME}/x2go/deploy/usr/lib/cgi-bin;
> install -t ${HOME}/x2go/deploy/usr/lib/cgi-bin x2gorpc.cgi
>
>
> install -D -d ${HOME}/x2go/deploy/etc/x2go/x2gows;
>
> #cat << END > ${HOME}/x2go/deploy/etc/x2go/x2gows/x2gows.options
> #ws_proto=wss
> #ssl_cert=$(sed -n -r -e
> 's/^[[:space:]]*ssl_certificate[[:space:]]+([^[:space:];]*).*$/\1/p'
> ${HOME}/x2go/deploy/etc/nginx/sites-available/x2gohtmlclient-demo.conf)
> #ssl_key=$(sed -n -r -e
> 's/^[[:space:]]*ssl_certificate_key[[:space:]]+([^[:space:];]*).*$/\1/p'
> ${HOME}/x2go/deploy/etc/nginx/sites-available/x2gohtmlclient-demo.conf)
> #ssl_only=true
> #log_dir=/var/log/x2gows
> #END
>
> cat << END > ${HOME}/x2go/deploy/etc/x2go/x2gows/x2gows.options
> ws_proto=ws
> log_dir=/var/log/x2gows
> END
>
>
> #
> # Package
> #
> ( cd ${HOME}/x2go/deploy; tar cfz /tmp/x2go.tgz . );
>
> #
> # Install
> #
>
> sudo tar xfz /tmp/x2go.tgz -C /;
>
> sudo chown -R www-data:www-data /usr/share/x2gohtmlclient;
> sudo chown -R www-data:www-data /usr/share/javascript/x2gokdriveclient;
> sudo chown -R www-data:www-data /usr/bin/x2gowswrapper;
> sudo chown -R www-data:www-data /usr/lib/cgi-bin;
> sudo chown -R www-data:www-data /var/log/nginx;
> sudo chown -R www-data:www-data /var/log/x2gows;
> sudo chown -R www-data:www-data /etc/x2go/x2gows/x2gows.options;
>
> sudo rm -f /etc/nginx/sites-enabled/default;
> sudo ln -sf ../sites-available/x2gohtmlclient-demo.conf
> /etc/nginx/sites-enabled/x2gohtmlclient-demo.conf
>
> #
> # Run
> #
> sudo systemctl restart nginx
>
>
> # ===============
> # Error(s)
> # ===============
>
> --------------------
> /tmp/.x2go-user/C-user-50-1634698056_stDGNOME_dp24/session.log
> --------------------
>
> running as X2Go Agent
>
> NXAGENT - Version 3.5.99.23
>
> Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com)
> Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
> Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
> Copyright (c) 2014-2016 Ulrich Sibiller <uli42 at gmx.de>
> Copyright (c) 2014-2016 Mihai Moldovan <ionic at ionic.de>
> Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com)
> See https://github.com/ArcticaProject/nx-libs for more information.
>
> Info: Agent running with pid '8744'.
> Session: Starting session at 'Tue Oct 19 22:47:37 2021'.
> Info: Proxy running in client mode with pid '8744'.
> Info: Using errors file
> '/tmp/.x2go-user/C-user-50-1634698056_stDGNOME_dp24/session.log'.
> Info: Using stats file
> '/tmp/.x2go-user/C-user-50-1634698056_stDGNOME_dp24/C-user-50-1634698056_stDGNOME_dp24/stats'.
> Loop: WARNING! Unrecognized session type 'unix-kde-depth_24'. Assuming
> agent session.
> Warning: Unrecognized session type 'unix-kde-depth_24'. Assuming agent
> session.
> Info: Waiting for connection from 'localhost' on socket 'tcp:*:53626'.
> Info: Accepted connection from '127.0.0.1'.
> Loop: WARNING! Non printable character decimal '7' received in remote data
> from FD#8.
> Warning: Non printable character decimal '7' received in remote data from
> FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Warning: Non printable character decimal '0' received in remote data from
> FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Warning: Non printable character decimal '0' received in remote data from
> FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Warning: Non printable character decimal '0' received in remote data from
> FD#8.
> Loop: WARNING! Non printable character decimal '0' received in remote data
> from FD#8.
> Warning: Non printable character decimal '0' received in remote data from
> FD#8.
> Loop: WARNING! Non printable character decimal '5' received in remote data
> from FD#8.
>
> ....
>
> Error: Failure negotiating the session in stage '7'.
> Error: Aborting session with 'Unable to open display
> 'nx/nx,options=/tmp/.x2go-user/C-user-50-1634698056_stDGNOME_dp24/options:50''.
> Session: Aborting session at 'Tue Oct 19 22:48:16 2021'.
> Session: Session aborted at 'Tue Oct 19 22:48:16 2021'.
>
> --------------------
> /var/log/x2gows/websockify.50001.1
> --------------------
>
> var VNC_frame_data = [
> '}3}6ba1f53e7eb3536232eeff332bd49336',
>
> '}3}\x07\x00\x00\x00\x00\x05\x98\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}5}\n\x00\x00\x00\x04\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35000}\x06\x00\x00\x009\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35033}\x06\x00\x00\x00\x8e\x00\x00\x00\xc2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35067}\x06\x00\x00\x00\xd1\x00\x00\x00\x14\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35101}\x06\x00\x00\x00\xed\x00\x00\x007\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35174}\x06\x00\x00\x00\xee\x00\x00\x009\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35200}\x06\x00\x00\x00\xec\x00\x00\x00=\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35233}\x06\x00\x00\x00\xe3\x00\x00\x00I\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35267}\x06\x00\x00\x00\xd4\x00\x00\x00h\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35300}\x06\x00\x00\x00\xb0\x00\x00\x00\x9d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
>
> '}35333}\x06\x00\x00\x00W\x00\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
> 'EOF'];
>
> --------------------
> /var/log/x2gows/8779_50000_50001.err
> --------------------
> warning, starting websockify without SSL support
> WebSocket server settings:
>   - Listen on :50001
>   - No SSL/TLS support (no cert file)
>
>   - Recording to '/var/log/x2gows/websockify.50001.*'
>
>   - proxying from :50001 to :50000
>
> 127.0.0.1: new handler Process
>
> 127.0.0.1 - - [19/Oct/2021 22:47:41] "GET /x2gows/50001 HTTP/1.1" 101 -
>
> 127.0.0.1 - - [19/Oct/2021 22:47:41] 127.0.0.1: Plain non-SSL (ws://)
> WebSocket connection
> 127.0.0.1 - - [19/Oct/2021 22:47:41] 127.0.0.1: Path: '/x2gows/50001'
>
> 127.0.0.1 - - [19/Oct/2021 22:47:41] opening record file:
> /var/log/x2gows/websockify.50001.1
>
> 127.0.0.1 - - [19/Oct/2021 22:47:41] connecting to: :50000
>
> 127.0.0.1 - - [19/Oct/2021 22:48:16] :50000: Target closed connection
>
> 127.0.0.1 - - [19/Oct/2021 22:48:16] :50000: Closed target
>
> --------------------
> /var/log/x2gows/8779_50000_50001.log
> --------------------
> SSH pid: 8779 local port: 50000 WS port: 50001
> start websockify with args --verbose --record
> /var/log/x2gows/websockify.50001 :50001 :50000
> Client closed connection, terminating...
> Terminating websockify
> Terminating tunnel with pid 8779
> terminating child process 8781 : ssh
>
>
> _______________________________________________
> x2go-dev mailing list
> x2go-dev at lists.x2go.org
> https://lists.x2go.org/listinfo/x2go-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x2go.org/pipermail/x2go-dev/attachments/20211028/f999f721/attachment-0001.htm>


More information about the x2go-dev mailing list