По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Virtual Network Computing (VNC) - это графическая система общего доступа к рабочему столу, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером. В этой статье описываются шаги по установке и настройке VNC-сервера в CentOS 8. Мы также покажем, как безопасно подключаться к VNC-серверу через туннель SSH. Подготовка Чтобы следовать этому руководству, вам необходимо войти в систему как пользователь с привилегиями sudo на удаленном компьютере CentOS. Установка окружения рабочего стола Как правило, на серверах не установлена среда рабочего стола. Если машина, к которой вы хотите подключиться, не имеет графического интерфейса, сначала установите ее. В противном случае пропустите этот шаг. Выполните следующую команду, чтобы установить Gnome, среду рабочего стола по умолчанию в CentOS 8 на удаленной машине: sudo dnf groupinstall "Server with GUI" В зависимости от вашей системы загрузка и установка пакетов и зависимостей Gnome может занять некоторое время. Установка VNC-сервера В качестве сервера мы будем использовать TigerVNC - активно поддерживаемый высокопроизводительный VNC-сервер с открытым исходным кодом. Он доступен в репозиториях CentOS по умолчанию, для его установки введите: sudo dnf install tigervnc-server После установки VNC-сервера выполните команду vncserver, чтобы создать начальную конфигурацию и установить пароль. Не используйте sudo при выполнении следующей команды: vncserver Вам будет предложено ввести и подтвердить пароль и указать, следует ли устанавливать его в качестве пароля только для просмотра (view-only). Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры. You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n /usr/bin/xauth: file /home/linuxize/.Xauthority does not exist New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com Starting applications specified in /etc/X11/Xvnc-session Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log При первом запуске команды vncserver она создаст и сохранит файл паролей в каталоге ~/.vnc, который будет создан, если его не будет. Обратите внимание, что : 1 после имени хоста в выводе выше. Это указывает номер порта дисплея, на котором работает сервер VNC. В нашем случае сервер работает по TCP-порту 5901 (5900 + 1) . Если вы создадите второй экземпляр, он будет работать на следующем свободном порту, то есть : 2, что означает, что сервер работает на порту 5902 (5900 + 2) . Важно помнить, что при работе с серверами VNC: X - это порт дисплея, который относится к 5900 + X. Прежде чем перейти к следующему шагу, сначала остановите экземпляр VNC, используя команду vncserver с параметром -kill и номером сервера в качестве аргумента. В нашем случае сервер работает в порту 5901 (: 1), поэтому, чтобы остановить его, запустите: vncserver -kill :1 Мы получим такой вывод: Killing Xvnc process ID 19681 Настройка VNC-сервера Теперь, когда и Gnome, и TigerVNC установлены на удаленной машине CentOS, следующим шагом является настройка TigerVNC для использования Gnome. Сервер VNC использует файл ~/.vnc/xstartup для запуска приложений при создании нового рабочего стола. Откройте файл: vim ~/.vnc/xstartup И отредактируйте его следующим образом: #!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources vncconfig -iconic & dbus-launch --exit-with-session gnome-session & Сохраните и закройте файл (напоминаем, что в vim для этого нужно ввести :wq). Приведенный выше скрипт автоматически выполняется при каждом запуске или перезапуске сервера TigerVNC. Если вы хотите передать дополнительные параметры серверу VNC, откройте файл ~/.vnc/config и добавьте один параметр в каждой строке. Наиболее распространенные параметры перечислены в файле. Раскомментируйте и измените по своему вкусу. Вот пример: # securitytypes=vncauth,tlsvnc # desktop=sandbox geometry=1920x1080 # localhost # alwaysshared Создание файла модуля Systemd Файлы модулей позволяют легко запускать, останавливать и перезапускать службы. Как правило, лучшим местом для хранения файлов пользовательских модулей является ~/.config/systemd/user. Создайте каталог при помощи команды mkdir: mkdir -p ~/.config/systemd/user Скопируйте дефолтный файл модуля vncserver: cp /usr/lib/systemd/user/vncserver@.service ~/.config/systemd/user/ Сообщите systemd, что существует новый файл пользовательского модуля: systemctl --user daemon-reload Запустите службу VNC и включите ее при загрузке: systemctl --user enable vncserver@:1.service --now Число 1 после @: определяет порт дисплея, который будет прослушивать служба VNC. Мы используем 1, что означает, что VNC-сервер будет прослушивать порт 5901, как мы обсуждали ранее. Включите задержку, чтобы служба пользователя запускалась при загрузке и продолжала работать, когда пользователь не в системе: loginctl enable-linger Убедитесь, что служба успешно запущена: systemctl --user status vncserver@:1.service Получим такой вывод: ? vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/home/linuxize/.config/systemd/user/vncserver@.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-01-30 22:14:08 UTC; 2s ago Process: 20813 ExecStart=/usr/bin/vncserver :1 (code=exited, status=0/SUCCESS) Process: 20807 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) CGroup: /user.slice/user-1000.slice/user@1000.service/vncserver.slice/vncserver@:1.service ... Подключение к серверу VNC VNC не является зашифрованным протоколом и может подвергаться перехвату пакетов. Рекомендуемый подход заключается в создании туннеля SSH для безопасной пересылки трафика с локального компьютера через порт 5901 на удаленный сервер с тем же портом. Настройка SSH-туннелирования в Linux и macOS Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель с помощью следующей команды ssh: ssh -L 5901:127.0.0.1:5901 -N -f -l username remote_server_ip Вам будет предложено ввести пароль пользователя. Замените username и remote_server_ip своим именем пользователя и IP-адресом вашего сервера. Настройка SSH-туннелирования в Windows Пользователи Windows могут настроить SSH-туннелирование с помощью PuTTY. Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address. В меню «Connection» разверните пункт «SSH» и выберите «Tunnels» . Введите порт VNC-сервера 5901 в поле Source Port, введите адрес_сервера: 5901 в поле Destination и нажмите кнопку Add. Вернитесь на страницу ”Session”, чтобы сохранить настройки, чтобы вам не приходилось каждый раз вводить их. Чтобы войти на удаленный сервер, выберите сохраненный сеанс и нажмите кнопку «Open» . Подключение с помощью Vncviewer Чтобы подключиться к удаленному Серверу, откройте программу просмотра VNC и введите localhost: 5901. Вы можете использовать любую программу просмотра VNC, такую как TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre и VNC Viewer для Google Chrome. Мы будем использовать TigerVNC: При появлении запроса введите пароль, и вы увидите рабочий стол Gnome по умолчанию. Это должно выглядеть примерно так: Готово! Теперь вы можете начать работу на удаленном рабочем столе с локального компьютера, используя клавиатуру и мышь. Итоги Мы показали вам, как настроить VNC-сервер и подключиться к удаленной машине CentOS 8. Чтобы запустить отображение для более чем одного пользователя, повторите те же шаги. Создайте исходную конфигурацию, установите пароль с помощью команды vncserver и создайте новый файл службы, используя другой порт.
img
Многие слышали, но боялись "пощупать" страшного зверя по имени FreeSwitch (FS). Уверяю Вас, что страшного ничего нет. Правда придется перестроить свои мозги на его понимание. Он сильно отличается от Asterisk. И хотя FS такая же программная АТС как и Asterisk, но задачи у них разные. FS позиционируется как "провайдерская" АТС, а Asterisk офисный вариант. Несмотря на это, я его использую даже, как говорится, "для дома, для семьи", то есть дома на одноплатнике Orange PI Plus 2E. Так как на нем стоит Ubuntu 16, то описывать установку я буду для Ubuntu из исходников. Если кому-то нужно попроще, то может установить на Debian (разработчики именно его рекомендуют. Как поставить из пакетов можно почитать здесь https://freeswitch.org/confluence/display/FREESWITCH/Linux А для самых искушенных даже на Windows :) https://freeswitch.org/confluence/display/FREESWITCH/Windows Сначала необходимо выполнить обновление системы: apt-get update apt-get upgrade Установим зависимости: apt-get install autoconf automake devscripts gawk g++ git-core libjpeg-dev libncurses5-dev libtool make python-dev gawk pkg-config libtiff5-dev libperl-dev libgdbm-dev libdb-dev gettext libssl-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libedit-dev libldns-dev libpq-dev libtool-bin libopus-dev libshout3-dev libmpg123-dev libmp3lame-dev libsndfile-dev libavresample-dev libswscale-dev libpng-dev libpng++-dev mpg123 После этого перезагружаемся: reboot Создаем папку и клонируем гит: cd /usr/src git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git cd /usr/src/freeswitch ./bootstrap.sh –j Подключаем необходимые модули: mcedit modules.conf + mod_rtmp + mod_directory + mod_callcenter + mod_dingaling + mod_shout + mod_cidlookup + mod_curl + mod_xml_curl Мне нужно было использовать zrtp и хранить данные в базе PostgreSQL (кстати, разработчики считают MySQL недобазой :)) Собираем с ключами: ./configure --enable-zrtp --enable-core-pgsql-support make make install Если при сборке FS ругается на openssl (switch_core_cert.lo) или что то подобное, то нужно проверить версию. Под 1.1.0 не устанавливается. Нужно ставить 1.0.2 Устанавливаем звуковые файлы: 8 kHz Standard Audio make sounds-install make moh-install 16 kHz High Definition Audio make hd-moh-install make hd-sounds-install 32 kHz Ultra High Definition Audio make uhd-moh-install make uhd-sounds-install 48 kHz CD Quality Audio make cd-sounds-install make cd-moh-install Установим русские звуковые файлы: make sounds-ru-install make cd-sounds-ru-install make uhd-sounds-ru-install make hd-sounds-ru-install Установим права и владельцев: adduser --disabled-password --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH Voice Platform" --ingroup daemon freeswitch chown -R freeswitch:daemon /usr/local/freeswitch/ chmod -R o-rwx /usr/local/freeswitch/ Создадим init скрипт для запуска /etc/init.d/freeswitch: #!/bin/bash ### BEGIN INIT INFO # Provides: freeswitch # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Freeswitch debian init script. # Author: Matthew Williams # ### END INIT INFO # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin DESC="Freeswitch" NAME=freeswitch DAEMON=/usr/local/freeswitch/bin/$NAME DAEMON_ARGS="-nc" PIDFILE=/usr/local/freeswitch/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME FS_USER=freeswitch FS_GROUP=daemon # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # # Function that sets ulimit values for the daemon # do_setlimits() { ulimit -c unlimited ulimit -d unlimited ulimit -f unlimited ulimit -i unlimited ulimit -n 999999 ulimit -q unlimited ulimit -u unlimited ulimit -v unlimited ulimit -x unlimited ulimit -s 240 ulimit -l unlimited return 0 } # # Function that starts the daemon/service # do_start() { # Set user to run as if [ $FS_USER ] ; then DAEMON_ARGS="`echo $DAEMON_ARGS` -u $FS_USER" fi # Set group to run as if [ $FS_GROUP ] ; then DAEMON_ARGS="`echo $DAEMON_ARGS` -g $FS_GROUP" fi # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null -- || return 1 do_setlimits start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background -- $DAEMON_ARGS || return 2 # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time. } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } # # Function that sends a SIGHUP to the daemon/service # do_reload() { # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME return 0 } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $? ;; #reload|force-reload) # # If do_reload() is not implemented then leave this commented out # and leave 'force-reload' as an alias for 'restart'. # #log_daemon_msg "Reloading $DESC" "$NAME" #do_reload #log_end_msg $? #;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac exit 0 Установим ссылку на CLI cd /usr/local/bin/ ln -s /usr/local/freeswitch/bin/fs_cli fs_cli Проверим всё ли запускается: cd /usr/local/freeswitch/bin ./freeswitch freeswitch@s02d> sofia status (или просто нажимаем F5) freeswitch@s02d> list_users Если нет ошибок, и высветились профили и пользователи, то можно отключаться: freeswitch@s02d> shutdown Меняем стандартный пароль для всех пользователей (указав свой): mcedit /usr/local/freeswitch/conf/vars.xml <X-PRE-PROCESS cmd="set" data="default_password=lkhd456hkhggl2"/> Включаем русский язык, если нужно: mcedit /usr/local/freeswitch/conf/vars.xml <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/ru/RU/elena"/> <X-PRE-PROCESS cmd="set" data="default_language=ru"/> После правки применяем изменения: fs_cli -x "reloadxml" Устанавливаем необходимые кодеки: mcedit /usr/local/freeswitch/conf/vars.xml <X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,PCMU,PCMA,VP8"/> <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,PCMU,PCMA,VP8"/> Ну и в конце стартуем FS: service freeswitch start Для подключения к FS используем следующую команду: fs_cli -rRS Вот и всё. Мы установили и запустили FreeSwitch. О том, как настраивать пользователей, гейты, диалплан читайте в следующих статьях.
img
У вас проблемы с доступом к удаленному серверу через SSH? Если SSH отвечает сообщением «Connection Refused» (Соединение отклонено), возможно, вам придется изменить запрос или проверить настройки. Почему при использовании SSH возникает отказ в подключении? Существует множество причин, по которым вы можете получить ошибку «Connection Refused» при попытке подключения к серверу по SSH. Чтобы решить эту проблему, вам сначала нужно определить, почему система отказалась от вашего подключения через SSH. Ниже вы найдете некоторые из наиболее распространенных причин, которые могут вызвать отказ в соединении SSH. Клиент SSH не установлен Прежде чем устранять другие проблемы, первым делом необходимо проверить, правильно ли установлен SSH. На машине, с которой вы получаете доступ к серверу, должен быть настроен клиент SSH. Без правильной настройки клиента вы не сможете подключиться к серверу. Чтобы проверить, есть ли в вашей системе клиент SSH, введите в окне терминала следующее: ssh Если терминал предоставляет список параметров команды ssh, клиент SSH установлен в системе. Однако, если он ответит, что команда не найдена (command not found), вам необходимо установить клиент OpenSSH. Решение: установить клиент SSH Чтобы установить клиент SSH на свой компьютер, откройте терминал и выполните одну из команд, перечисленных ниже. Для систем Ubuntu / Debian: sudo apt установить openssh-client Для систем CentOS / RHEL: sudo yum установить openssh-client Демон SSH не установлен на сервере Так же, как вам нужна клиентская версия SSH для доступа к удаленному серверу, вам нужна версия сервера для прослушивания и приема соединений. Таким образом, сервер может отклонить входящее соединение, если SSH-сервер отсутствует или настройка неверна. Чтобы проверить, доступен ли SSH на удаленном сервере, выполните команду: ssh localhost Если на выходе отображается «Connection refused», переходите к установке SSH на сервере. Решение: установите SSH на удаленный сервер Чтобы решить проблему отсутствия сервера SSH, установите сервер OpenSSH. Учетные данные неверны Опечатки или неправильные учетные данные - частые причины отказа в SSH-соединении. Убедитесь, что вы не ошиблись при вводе имени пользователя или пароля. Затем проверьте, правильно ли вы используете IP-адрес сервера. Наконец, убедитесь, что у вас открыт правильный порт SSH. Вы можете проверить, запустив: grep Port /etc/ssh/sshd_config На выходе отображается номер порта, как на картинке ниже. Служба SSH не работает Служба SSH должна быть включена и работать в фоновом режиме. Если служба не работает, демон SSH не может принимать соединения. Чтобы проверить статус службы, введите эту команду: sudo service ssh status Вывод должен ответить, что служба активна. Если терминал отвечает, что служба не работает, включите его, чтобы решить проблему. Решение: включить службу SSH Если система показывает, что демон SSH не активен, вы можете запустить службу, выполнив: systemctl start sshd Чтобы служба запускалась при загрузке, выполните команду: sudo systemctl enable sshd Брандмауэр препятствует подключению SSH SSH может отклонить соединение из-за ограничений брандмауэра. Брандмауэр защищает сервер от потенциально опасных подключений. Однако, если в системе настроен SSH, необходимо настроить брандмауэр, чтобы разрешить SSH-соединения. Убедитесь, что брандмауэр не блокирует SSH-соединения, так как это может вызвать ошибку «Connection refused». Решение: разрешить SSH-подключения через брандмауэр Чтобы решить проблему, о которой мы упоминали выше, вы можете использовать ufw (Uncomplicated Firewall - несложный брандмауэр), инструмент интерфейса командной строки для управления конфигурацией брандмауэра. Введите следующую команду в окне терминала, чтобы разрешить SSH-соединения: sudo ufw allow ssh Порт SSH закрыт Когда вы пытаетесь подключиться к удаленному серверу, SSH отправляет запрос на определенный порт. Чтобы принять этот запрос, на сервере должен быть открыт порт SSH. Если порт закрыт, сервер отказывает в соединении. По умолчанию SSH использует порт 22. Если вы не вносили никаких изменений в конфигурацию порта, вы можете проверить, прослушивает ли сервер входящие запросы. Чтобы вывести список всех прослушивающих портов, запустите: sudo lsof -i -n -P | grep LISTEN Найдите порт 22 в выходных данных и проверьте, установлено ли для него STATE значение LISTEN. Кроме того, вы можете проверить, открыт ли конкретный порт, в данном случае порт 22: sudo lsof -i:22 Решение: откройте порт SSH Чтобы разрешить порту 22 слушать запросы, используйте команду iptables: sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT Вы также можете открывать порты через графический интерфейс, изменив настройки брандмауэра. Отладка и ведение журнала SSH Чтобы проанализировать проблемы SSH в Linux, вы можете включить подробный режим или режим отладки. Когда вы включаете этот режим, SSH выдает отладочные сообщения, которые помогают устранять проблемы с подключением, конфигурацией и аутентификацией. Существует три уровня детализации: уровень 1 (-v) уровень 2 (-vv) уровень 3 (-vvv) Поэтому вместо доступа к удаленному серверу с использованием синтаксиса ssh [server_ip] добавьте параметр -v и выполните: ssh -v [server_ip] В качестве альтернативы вы можете использовать: ssh -vv [server_ip] или ssh -vvv [server_ip]
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59