1nxproxy(1) NX Proxy nxproxy(1)
2
3
4
6 nxproxy - NX Proxy Tool
7
9 nxproxy [<options>] <host>:<port>
10
11
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
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
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 The following options are interpreted by the nx-NX Agent. They are
311 ignored by the proxy:
312
313 autodpi=<bool>
314 autograb=<bool>
315 backingstore=<int>
316 client=<string>
317 clients=<string>
318 clipboard=<int>
319 composite=<int>
320 copysize=<int>
321 defer=<int>
322 fullscreen=<bool>
323 geometry=<string>
324 kbtype=<string>
325 keyboard=<string>
326 keyconv=<string>
327 magicpixel=<bool>
328 menu=<int>
329 resize=<bool>
330 rootless=<bool>
331 shadow=<int>
332 shadowmode=<string>
333 shadowuid=<int>
334 shmem=<bool>
335 shpix=<bool>
336 sleep=<int>
337 state=<string>
338 streaming=<int>
339 textclipboard=<bool>
340 tile=<string>
341 tolerancechecks=<int>
342 xinerama=<int>
343
344
345
347 The nxproxy application (and also nxagent when using nxcomp support)
348 can be influenced by the following environment variables:
349
350
351
352 NX_ROOT The root NX directory is the place where the session directory
353 and the cache files are created. This is usually overridden by
354 passing the 'root=' option. By default, the root NX directory
355 is assumed to be the directory '.nx' in the user's home.
356
357
358 NX_SYSTEM
359 The directory where NX programs and libraries reside. If not
360 set, the value is assumed to be '/usr/NX'. Programs, libraries
361 and data files are respectedly searched in the 'bin', 'lib' and
362 'share' subdirectories.
363
364
365 NX_HOME The NX user's home directory. If NX_ROOT is not set or invalid,
366 the user's NX directory is created here.
367
368
369 NX_TEMP The directory where all temporary files are to be created.
370
371
372 NX_CLIENT
373 The full path to the <nxclient> executable. If the variable is
374 not set, the <nxclient> executable will be run assuming that
375 the program is in the system path. This can be useful on
376 platforms like Windows and the MacOS X where <nxclient> is
377 located in a different directory compared to the other
378 programs, to make easier for the user to execute the program
379 from the shell.
380
381
382 NX_SLAVE_CMD
383 The full path to the slave channel handler. When the slave
384 channel is enabled, the agent will listen on a port and forward
385 the connection to the NX_SLAVE_CMD program. This can be used to
386 implement agent/proxy communication for applications such as
387 serial port and USB forwarding.
388
389
391 HOME The variable is checked in the case NX_HOME is not set, null or
392 invalid.
393
394
395 TEMP The variable is checked whenever the NX_TEMP directory is not
396 set, null or invalid.
397
398
399 PATH The path where all executables are searched, except <nxclient>.
400 If NX_CLIENT is not set, also the client executable is searched
401 in the system path.
402
403
404 LD_LIBRARY_PATH
405 System-wide library search order. This should be set by the
406 program invoking the proxy.
407
408
409 DISPLAY On the X server side, the DISPLAY variable indicates the
410 location of the X11 server. When nxcomp is used as a transport
411 library, the DISPLAY may represent a NX transport specification
412 and options can passed in the form nx/nx,option=value...
413
414
415 XAUTHORITY
416 This is the file containing the X11 authorization cookie. If
417 not set, the file is assumed to be in the user's home (either
418 NX_HOME or HOME).
419
420
422 The nxproxy application has originally been derived from a software
423 project called DXCP. The company NoMachine turned DXCP into nxcomp with
424 nxproxy as executable around nxcomp.
425
426 The current maintenance of nxproxy (major version 3) is coordinated
427 between various projects, mainly by The Arctica Project, TheQVD (Qindel
428 Group) and the X2Go Project.
429
430 This manual has been written by Mike Gabriel
431 <mike.gabriel@das-netzwerkteam.de> for the X2Go project
432 (http://www.x2go.org) and later on improved for the Arctica Project
433 (https://arctica-project.org).
434
435
436
437Version 3.5.99.27 Jun 2023 nxproxy(1)