#!/bin/bash #/**************************************************************************/ #/* */ #/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ #/* Copyright (c) 2015-2016 Mike Gabriel */ #/* */ #/* NXSCRIPTS, NX protocol compression and NX extensions to this software */ #/* are copyright of the aforementioned persons and companies. */ #/* */ #/* Redistribution and use of the present software is allowed according */ #/* to terms specified in the file LICENSE.nxcomp which comes in the */ #/* source distribution. */ #/* */ #/* All rights reserved. */ #/* */ #/* NOTE: This software has received contributions from various other */ #/* contributors, only the core maintainers and supporters are listed as */ #/* copyright holders. Please contact us, if you feel you should be listed */ #/* as copyright holder, as well. */ #/* */ #/**************************************************************************/ # # Uncomment this to enable echo. # #set -x # ulimit -c unlimited NXPROXYBIN=nxproxy NXAGENTBIN=nxagent ### ### Adapt to your needs: NXAGENT_HOST, NXPROXY_HOST ### ### This script launches nxagent and has to be executed on the NXAGENT_HOST. ### On the NXPROXY_HOST you will have to execute nxproxy by copy+pasting ### some command lines... ### ### (Instructions for copy+pasting are given when this script has been launched). ### NXAGENT_HOST=127.0.0.1 # (e.g. 192.168.1.1, this scripts is launched on the NXAGENT_HOST machine) NXPROXY_HOST=127.0.0.1 # (e.g. 192.168.1.2, you want to connect nxproxy -> nxagent from the NXPROXY_HOST machine) NX_PORT=9 NX_SYSTEM=${HOME}/.nx NX_ROOT=${HOME}/.nx # # This should be randomly generated. # #NX_COOKIE=`xauth list |grep "${HOSTNAME}/unix:\<${NX_PORT}\>" | grep MIT | cut -f 5 -d ' '` NX_COOKIE=123efa980d2cba234ef6f73deac810ff # # Create the directories for the NX session. # rm -rf ${NX_ROOT}/C-${NX_PORT} || exit mkdir -p ${NX_ROOT}/C-${NX_PORT} || exit rm -rf ${HOME}/.nx/S-${NX_PORT} || exit mkdir -p ${HOME}/.nx/S-${NX_PORT} || exit # # Set the path to libraries and NX executables. # LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${HOME}/NX/nxcomp:${HOME}/NX/nxcompext:${HOME}/NX/nx-X11/exports/lib" export LD_LIBRARY_PATH PATH="${PATH}:${HOME}/NX/nxclient/nxclient:${HOME}/NX/nx-X11/programs/Xserver/" export PATH # # Create the fake cookie for this display. # echo -ne "Creating the X authorization cookie.\n" xauth add ${NXPROXY_HOST}/unix:${NX_PORT} MIT-MAGIC-COOKIE-1 ${NX_COOKIE} xauth add ${NXPROXY_HOST}:${NX_PORT} MIT-MAGIC-COOKIE-1 ${NX_COOKIE} # # Options are written in a file 'options' in the session # directory. The agent will use the DISPLAY settings, so # we pass in the DISPLAY the name of the options file. # # cache=8M,images=32M,link=modem,type=unix-kde,cleanup=0, # accept=62.98.198.1,cookie=$NX_COOKIE, # id=giulietta.nomachine.com-1098-6A4649FD0FCA57FAC275AF3F1C45B10F, # media=1:1098 # NX_HOST=nx/nx,cache=8192k,link=modem,menu=1,keybd=1,samba=0,cups=0,limit=0,\ accept=$NXPROXY_HOST,cookie=$NX_COOKIE,errors=${NX_ROOT}/C-${NX_PORT}/session echo "${NX_HOST}:${NX_PORT}" >${NX_ROOT}/C-${NX_PORT}/options # # Run the agent. if you don't have a font server running, # remove the argument "-fp unix/:7100" # NX_AGENT=:${NX_PORT} echo -ne "Running the X client side NX agent.\n" SAVED_DISPLAY=$DISPLAY DISPLAY=nx/nx,options=${NX_ROOT}/C-${NX_PORT}/options:${NX_PORT} export DISPLAY #valgrind -v --num-callers=8 --error-limit=no --trace-children=no \ #valgrind --num-callers=8 --tool=memcheck --leak-check=yes --show-reachable=yes --track-fds=yes \ #ldd ${NXAGENTBIN} ${NXAGENTBIN} -name 'NX' -geometry 800x600+100+100 "$@" \ ${NX_AGENT} 2>>${NX_ROOT}/C-${NX_PORT}/session & # # The X server side proxy will forward the connection # to the original DISPLAY. # DISPLAY=$SAVED_DISPLAY export DISPLAY # # These are the nxproxy options used to run a typical session. # # cookie=$NX_COOKIE,root=/home/pinzari/.nx,media=32824, # session=kde_on_giulietta,id=giulietta.nomachine.com-1098-6A4649FD0FCA57FAC275AF3F1C45B10F, # connect=giulietta.nomachine.com:1098 # echo echo Now... COPY+PASTE the below lines to your local system echo echo "--------------8<---------" #NX_HOST=nx/nx,keybd=1,samba=1,cups=1,connect=$NXAGENT_HOST,cookie=$NX_COOKIE,errors=${NX_ROOT}/S-${NX_PORT}/session NX_HOST=nx/nx,keybd=1,samba=0,cups=0,connect=tcp:$NXAGENT_HOST:4009,cookie=$NX_COOKIE,errors=${NX_ROOT}/S-${NX_PORT}/session echo "NX_HOST=$NX_HOST" echo "echo \"${NX_HOST}:${NX_PORT}\" >${NX_ROOT}/S-${NX_PORT}/options" echo "${NXPROXYBIN} -S nx/nx,options=${NX_ROOT}/S-${NX_PORT}/options:${NX_PORT} 2>>${HOME}/.nx/S-${NX_PORT}/session" echo "-------------->8---------" echo