Автор Тема: Проброс локальных ресурсов при работе в терминале freenx  (Прочитано 2515 раз)

Оффлайн olegans

  • Участник
  • *
  • Сообщений: 10
Добрый день!
Уважаемые, подскажите, пожалуйста, как настроить проброс локальных ресурсов, в частности, локального принтера?
Имеется:
ОС ALT Linux 7.0.5 Centaurus
nx-server 3.2.0-74-SVN
etercifs 5.4.8
cups.conf и samba.conf (из /etc/nxserver/node.conf.d) во вложении.

Проблема в следующем. При подключении клиента выдается сообщение Share: '//ARTUR-PC/test' failed to mount. При этом в messages ничего по этому поводу нет, в логах самбы тоже.
Насчет принтера, когда в cups.conf было ENABLE_CUPS_SERVER_MODE="0", то при подключении клиента появлялся диалог выбора принтера, после добавления он появлялся в оснастке "печать", но печать при этом на него не шла. В cups_error.log было что-то по поводу отсутствия доступа. После правки разрешений на каталоги те ошибки из лога cups исчезли, но появилась другая:
[cups-deviced] Bad line from "nxsmb": Warning: Not using nxredir library. The DEVICE_URI is not in the right format.

Вот содержимое nxsmb:
Спойлер
#!/bin/sh
#
# nxsmb: Small wrapper for the SMB backend to be able to print to CIFS or SMB ports directly.
#
# Copyright © 2008 by Fabian Franz.
#
#

# turn on DEBUG?
#set -x -v
CUPS_BACKEND="/usr/lib/cups/backend"
PATH_LIB="/usr/lib64"

NXREDIR_LIBRARY="$PATH_LIB/freenx-server/libnxredir.so.0"
COMMAND_SMB="$CUPS_BACKEND/smb"

PORT=$(echo $DEVICE_URI | cut -d/ -f3 | cut -d@ -f2 | cut -d: -f2)
PROTOCOL=$(echo $DEVICE_URI | cut -d/ -f4)
PRINTER=$(echo $DEVICE_URI | cut -d/ -f5)

if [ -z "$PRINTER" ] # old style setup
then
echo "Warning: Not using nxredir library. The DEVICE_URI is not in the right format."
exec "$COMMAND_SMB" "$@"
fi

if [ ! -x "$NXREDIR_LIBRARY" ]
then
# repair DEVICE_URI
DEVICE_URI=$(echo $DEVICE_URI | sed "s|/$PROTOCOL||g")
echo "Error: Not using nxredir library. $NXREDIR_LIBRARY could not be found or is not executable."
exec "$COMMAND_SMB" "$@"
fi

if [ "$PROTOCOL" = "cifs" -o "$PROTOCOL" = "CIFS" ]
then
REAL_PORT="445"
else
REAL_PORT="139"
fi

DEVICE_URI=$(echo $DEVICE_URI | sed "s|:$PORT/$PROTOCOL/|:$REAL_PORT/|g")
export DEVICE_URI=$(echo $DEVICE_URI | sed "s|nxsmb://|smb://|g")

export NXSAMBA_PORT="$PORT"
export LD_PRELOAD="$NXREDIR_LIBRARY${LD_PRELOAD:+:$LD_PRELOAD}"

exec "$COMMAND_SMB" "$@"


nxredir:
Спойлер
#!/bin/sh

PATH_LIB="/usr/lib64"
NXREDIR_LIBRARY="$PATH_LIB/freenx-server/libnxredir.so.0"

if [ -z "$NXCUPS_PORT" -a -z "$NXSAMBA_PORT" ]
then
echo "nxredir: Redirect standard ports to nxproxy"
echo ""
echo "Usage: export NXCUPS_PORT='where_cups_is_running'"
echo " export NXSAMBA_PORT='where_samba_is_running'"

# invoke the program with the args given
exec "$@"
exit 0
fi

export LD_PRELOAD="$NXREDIR_LIBRARY${LD_PRELOAD:+:$LD_PRELOAD}"

# invoke the program with the args given
exec "$@"

Сейчас в cups.conf ENABLE_CUPS_SERVER_MODE="1", при подключении клиента в веб-интерфейсе cups жму "найти принтер", после в логе cups_error.log та же ошибка: [cups-deviced] Bad line from "nxsmb": Warning: Not using nxredir library. The DEVICE_URI is not in the right format.

Подскажите, пожалуйста, где какие настройки проверить, чтобы заработал проброс ресурсов?

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
[cups-deviced] Bad line from "nxsmb": Warning: Not using nxredir library. The DEVICE_URI is not in the right format.
Плохая строка в nxsmb, предупреждение: библиотека nxredir не будет использована. Переменная DEVICE_URI в неправильном формате.

Оффлайн olegans

  • Участник
  • *
  • Сообщений: 10
Плохая строка в nxsmb, предупреждение: библиотека nxredir не будет использована. Переменная DEVICE_URI в неправильном формате.
Ну, это он ругается на строку DEVICE_URI=$(echo $DEVICE_URI | sed "s|/$PROTOCOL||g"), так? Т.е. скрипт не получил значение переменной $DEVICE_URI? А откуда он берёт это значение.

Оффлайн olegans

  • Участник
  • *
  • Сообщений: 10
В общем, снес nx, добавил репозиторий etersoft, установил заново, настроил - проброс принтеров заработал (по крайней меры windows принтеры по nxsmb подключаются). Но теперь другая проблема - перестали подключаться виндовые клиенты версий 4.х (3.4 подключается). На клиенте в логах ничего подозрительного вроде нет, на сервере в messages пишет: "accepted publickey for nx from ...". Когда в клиенте жму "подключение", то на 1 - 2 секунды появляется надпись "connection to ..." и окно программы закрывается.
Есть решение?
p.s. сейчас на сервере установлен nx-3.5.1-alt12 и rx-etersoft-1.1.2-alt16.M70P.17

Также не работает проброс принтеров с linux клиентов:
1) Если подключаюсь с помощью nxclient от nomachine (nx client for linux 3.5.0-7), то сначала получаю сообщение о том, что cups не запущен, затем, что не удалось примонтировать принтер ml2015 (не помню дословно). В результате в терминале сидим без принтера.
2) Если подключаюсь с помощью opennx клиента (openNX 0.16.0.0), то сообщение о незапущенном cups также получаю, но при этом принтер прокидывается, на серваке он подключается с URI ipp://127.0.0.1:4000/printers/ml2015. Но, при этом печать на него заканчивается ошибкой: "unable to get printer status"
« Последнее редактирование: 03.06.2014 14:39:29 от olegans »