1nxproxy(1)                         NX Proxy                         nxproxy(1)
2
3
4

NAME

6       nxproxy - NX Proxy Tool
7

SYNOPSIS

9       nxproxy [<options>] <host>:<port>
10
11

DESCRIPTION

13       nxproxy is a tool that allows one to tunnel X sessions through the NX
14       compression library. nxproxy is a backend application utilized by
15       various client application (Remmina, X2Go Client, PyHoca-Gui, Arctica
16       Client, TheQVD Client, etc.).
17

COMMAND LINE OPTIONS

19       -C      Specify that nxproxy has to run on the 'X client' side,
20               listening for connections and impersonating an X server.
21
22       -S      Specify that nxproxy has to run in 'X server' mode, thus
23               forwarding the connections to daemons running on the client.
24
25       -h      Print this message.
26
27       -v      Print version information.
28
29       -d <int>
30               Set log level (0 for FATAL, 1 for ERROR, 2 for WARNING, 3 for
31               INFO, 4 for DEBUG). The default is 0.
32
33       -o <string>
34               Name of the log file. Default is stderr.
35
36       -f <string>
37               Specify log format. The characters in <string> define how the
38               loglines are formatted. The following characters are supported,
39               default is '0':
40
41               0       only the plain text without any additions. This is the
42                       default.
43
44               u       include time
45
46               l       include loglevel
47
48               T       include thread ids
49
50               L       include the location of the log call in the source code
51
52       <host>:<port>
53               Put at the end, specifies the host and port of the listening
54               proxy.
55
56

NX/NX DISPLAY OPTIONS

58       Multiple nx/nx options can be specified in the DISPLAY environment or
59       on the command line, by using the nx/nx,option=value notation.
60
61       link=<string>
62               An indication of the link speed that is going to be used
63               between the proxies. Usually the compression and the other link
64               parameters depend on this setting. The value can be either
65               'modem', 'isdn', 'adsl', 'wan', 'lan', 'local' or a bandwidth
66               specification, like for example '56k', '1m', '100m', etc.
67
68
69       type=<string>
70               Type of session, for example 'windows', 'unix-kde'. 'unix-
71               application', etc.
72
73
74       display=<string>
75               Specify the real display where X connections have to be
76               forwarded by the proxy running on the client.
77
78
79       listen=<int>
80               Local port used for accepting the proxy connection.
81
82
83       loopback=<bool>
84               Bind to the loopback device only.
85
86
87       accept=<string>
88               Name or IP of host that can connect to the proxy.
89
90
91       connect=<string>
92               Name or IP of host that the proxy will connect to.
93
94
95       port=<int>
96               Remote port used for the connection.
97
98
99       retry=<int>
100               Number of connection attempts.
101
102
103       root=<string>
104               The root directory for the session. Usually is the C-* or S-*
105               in the .nx directory in the user's home, with '*' being the
106               virtual display.
107
108
109       session=<string>
110               Name of the session file. The default is the name 'session' in
111               the session directory.
112
113
114       errors=<string>
115               Name of the log file used by the proxy. The default is the name
116               'errors' in the session directory.
117
118
119       stats=<string>
120               Name of the file where are written the proxy statistics. The
121               default is a file 'stats' in the session directory. The proxy
122               replaces the data in the file whenever it receives a SIGUSR1 or
123               SIGUSR2 signal:
124
125               SIGUSR1: Gives total statistics, i.e. statistics collected
126               since the beginning of the session.
127
128               SIGUSR2: Gives partial statistics, i.e. statistics collected
129               since the last time this signal was received.
130
131
132       cookie=<string>
133               Use the provided cookie for authenticating to the remote proxy.
134               The same cookie is used as the fake value used for the X
135               authorization. The fake cookie is replaced on the X server side
136               with the real cookie to be used for the display, so that the
137               real cookie doesn't have to travel over the net. When not using
138               a proxy cookie, any host will be able to connect to the proxy.
139               See also the 'accept' parameter.
140
141
142       nodelay=<bool>
143               A boolean indicating if TCP_NODELAY has to be set on the proxy
144               link. Old Linux kernels had problems with handling TCP_NODELAY
145               on PPP links.
146
147
148       policy=<bool>
149               Let or not the agent decide when it is the best time to flush
150               the proxy link. If set to 0, the proxy will flush any encoded
151               data immediately. The option has only effect on the X client
152               side proxy.
153
154
155       render=<bool>
156               Enable or disable use of the RENDER extension.
157
158
159       taint=<bool>
160               Try to suppress trivial sources of X roundtrips by generating
161               the reply on the X client side.
162
163
164       delta=<bool>
165               Enable X differential compression.
166
167
168       data=<int>
169               Enable or disable the ZLIB data compression. It is possible to
170               specify a value between 0 and 9. Usually the value is chosen
171               automatically based on the requested link setting.
172
173
174       stream=<int>
175               Enable or disable the ZLIB stream compression. The value,
176               between 0 and 9, is usually determined according to the
177               requested link setting. Not fully implemented in nx-X11 Agent,
178               yet.
179
180
181       limit=<int>
182               Specify a bitrate limit allowed for this session.
183
184
185       memory=<int>
186               Trigger memory optimizations used to keep small the size of X
187               buffers.  This is useful on embedded plat- forms, or where
188               memory is scarce.
189
190
191       cache=<int>
192               Size of the in-memory X message cache. Setting the value to 0
193               will disable the memory cache as well as the NX differential
194               compression.
195
196
197       images=<int>
198               Size of the persistent image cache.
199
200
201       shseg=<int>
202               Enable the use of the MIT-SHM extension between the nxproxy and
203               the real X server. A value greater than 1 is assumed to be the
204               size of requested shared memory segment. By default, the size
205               of the segment is determined based on the size of the in-memory
206               cache.
207
208
209       load=<bool>
210               Enable loading a persistent X message cache at the proxy
211               startup.
212
213
214       save=<bool>
215               Enable saving a persistent X message cache at the end of
216               session.
217
218
219       cups=<int>
220               Enable or disable forwarding of CUPS connections, by listening
221               on the optional port 'n'.
222
223
224       aux=<int>
225               Enable or disable forwarding of the auxiliary X channel used
226               for controlling the keyboard. The 'keybd=<int>' form is
227               accepted for backward compatibility.
228
229
230       smb=<int>
231               Enable or disable forwarding of SMB connections. The
232               'samba=<int>' form is accepted for backward compatibility.
233
234
235       media=<int>
236               Enable forwarding of audio connections.
237
238
239       http=<int>
240               Enable forwarding of HTTP connections.
241
242
243       font=<int>
244               Enable forwarding of reversed connections to a font server
245               running on the NX server.
246
247
248       file=<int>
249               Enable forwarding of file transfer connections.
250
251
252       mask=<int>
253               Determine the distribution of channel ids between the proxies.
254               By default, channels whose ids are multiple of 8 (starting from
255               0) are reserved for the NX client side. All the other channels
256               can be allocated by the nx-X11 Agent side.
257
258
259       timeout=t
260               Specify the keep-alive timeout used by proxies to determine if
261               there is a network problem preventing communication with the
262               remote peer. A value of 0 disables the check.
263
264
265       cleanup=t
266               Specify the number of seconds the proxy has to wait at session
267               shutdown before closing all channels. The feature is used by
268               the NX server to ensure that services are disconnected before
269               shutting down the link.
270
271
272       pack=<string>
273               Determine the method used to compress images.
274
275
276       product=<string>
277               The product id of the client or server. The value is ignored by
278               the proxy, but the client or server can provide it to
279               facilitate the support.
280
281
282       core=<bool>
283               Enable production of core dumps when aborting the proxy
284               connection.
285
286
287       options=<string>
288               Specify an additional file containing options that has to be
289               merged with option read from the command line or the
290               environment.
291
292
293       kill=<int>
294               Add the given process to the list of daemons that must be
295               terminated at session shutdown. Multiple 'kill=<int>' options
296               can be specified. The proxy will send them a SIGTERM signal
297               just before exiting.
298
299
300       strict=<bool>
301               Optimize for responsiveness, rather than for the best use of
302               all the available bandwidth.
303
304
305       encryption=<bool>
306               Should be set to 1 if the proxy is running as part of a program
307               providing encryption of the point to point communication.
308
309
310       These options are interpreted by the nx-NX Agent. They are ignored by
311       the proxy.
312
313                   rootless=<bool>
314                   geometry=<string>
315                   resize=<bool>
316                   fullscreen=<bool>
317                   keyboard=<string>
318                   clipboard=<int>
319                   streaming=<int>
320                   backingstore=<int>
321                   composite=<int>
322                   xinerama=<int>
323                   shmem=<bool>
324                   shpix=<bool>
325                   kbtype=<string>
326                   client=<string>
327                   shadow=<int>
328                   shadowuid=<int>
329                   shadowmode=<string>
330                   defer=<int>
331                   tile=<string>
332                   menu=<int>
333                   magicpixel=<bool>
334                   autodpi=<bool>
335                   sleep=<int>
336
337

NX ENVIRONMENT VARIABLES

339       The nxproxy application (and also nxagent when using nxcomp support)
340       can be influenced by the following environment variables:
341
342
343
344       NX_ROOT The root NX directory is the place where the session directory
345               and the cache files are created. This is usually overridden by
346               passing the 'root=' option. By default, the root NX directory
347               is assumed to be the directory '.nx' in the user's home.
348
349
350       NX_SYSTEM
351               The directory where NX programs and libraries reside. If not
352               set, the value is assumed to be '/usr/NX'. Programs, libraries
353               and data files are respectedly searched in the 'bin', 'lib' and
354               'share' subdirectories.
355
356
357       NX_HOME The NX user's home directory. If NX_ROOT is not set or invalid,
358               the user's NX directory is created here.
359
360
361       NX_TEMP The directory where all temporary files are to be created.
362
363
364       NX_CLIENT
365               The full path to the <nxclient> executable. If the variable is
366               not set, the <nxclient> executable will be run assuming that
367               the program is in the system path. This can be useful on
368               platforms like Windows and the MacOS X where <nxclient> is
369               located in a different directory compared to the other
370               programs, to make easier for the user to execute the program
371               from the shell.
372
373
374       NX_SLAVE_CMD
375               The full path to the slave channel handler. When the slave
376               channel is enabled, the agent will listen on a port and forward
377               the connection to the NX_SLAVE_CMD program. This can be used to
378               implement agent/proxy communication for applications such as
379               serial port and USB forwarding.
380
381

SHELL ENVIRONMENT VARIABLES

383       HOME    The variable is checked in the case NX_HOME is not set, null or
384               invalid.
385
386
387       TEMP    The variable is checked whenever the NX_TEMP directory is not
388               set, null or invalid.
389
390
391       PATH    The path where all executables are searched, except <nxclient>.
392               If NX_CLIENT is not set, also the client executable is searched
393               in the system path.
394
395
396       LD_LIBRARY_PATH
397               System-wide library search order. This should be set by the
398               program invoking the proxy.
399
400
401       DISPLAY On the X server side, the DISPLAY variable indicates the
402               location of the X11 server. When nxcomp is used as a transport
403               library, the DISPLAY may represent a NX transport specification
404               and options can passed in the form nx/nx,option=value...
405
406
407       XAUTHORITY
408               This is the file containing the X11 authorization cookie. If
409               not set, the file is assumed to be in the user's home (either
410               NX_HOME or HOME).
411
412

AUTHOR

414       The nxproxy application has originally been derived from a software
415       project called DXCP. The company NoMachine turned DXCP into nxcomp with
416       nxproxy as executable around nxcomp.
417
418       The current maintenance of nxproxy (major version 3) is coordinated
419       between various projects, mainly by The Arctica Project, TheQVD (Qindel
420       Group) and the X2Go Project.
421
422       This manual has been written by Mike Gabriel
423       <mike.gabriel@das-netzwerkteam.de> for the X2Go project
424       (http://www.x2go.org) and later on improved for the Arctica Project
425       (https://arctica-project.org).
426
427
428
429Version 3.5.99.26                  Feb 2021                         nxproxy(1)
Impressum