English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Настройка удаленного рабочего стола CentOS7 vnc/vnc-server с详解

Centos7 и Centos6.x значительно различаются.

Чтобы установить удаленный рабочий стол на сервер, пришлось много повозиться. Написание этой статьи было纯粹 для записи, чтобы в будущем, если встретите такие же проблемы, можно было бы отследить.

1、Предположим, что на вашей системе не установлено никакого программного обеспечения vnc, поэтому, сначала установите vnc

yum -y install tigervnc-server tigervnc

2、Для систем Centos7 до версии, если устанавливается vnc, обычно необходимо настроить

[root@localhost ~]# cat /etc/sysconfig/vncservers 
# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/[email protected]

Но, как указано выше, для Centos7 необходимо настроить файлы в

[root@localhost ~]# ll /lib/systemd/system/[email protected]
-rw-r--r--. 1 root root 1744 Июнь 10 14:15 /lib/systemd/system/[email protected]

3、в файле есть следующие подсказки

# Quick HowTo:
# 1. Скопируйте этот файл в /etc/systemd/system/vncserver@:<display>.service
# 2. Редактируйте параметры пользователя <USER> и vncserver соответствующим образом
# ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2")
# 3. Запустите `systemctl daemon-reload`
# 4. Запустите `systemctl enable vncserver@:<display>.service

4、复制一份文件,并改名为vncserver@:1.service

[root@localhost ~]# cp /lib/systemd/system/[email protected]/lib/systemd/system/vncserver@:1.service

5、将文件中的<User>用你当前的用户替换,将%i替换为1

[Unit]
Description=Удаленный рабочий стол (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Удалите все существующие файлы в среде /tmp/.X11-unix
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver :1 -geometry 1280x720 -depth 24"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target

6. Обновите systemctl

systemctl daemon-reload

7. Установите автоматический запуск

systemctl enable vncserver@:1.service

8. Запустите службу VNC

systemctl start vncserver@:1.service

9. В iptables добавьте соответствующий порт 5901 (внимание, если есть другие пользователи, также добавьте порт. Порт VNC по умолчанию 5900 + n)

[root@localhost system]# cat /etc/sysconfig/iptables
# пример конфигурации для службы iptables
# вы можете вручную изменить это или использовать system-config-firewall
# пожалуйста, не просите нас добавить дополнительные порты/службы в эту стандартную конфигурацию
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Внимание:

1. Если вы не настроили и не включили брандмауэр, при попытке подключения с помощью VNC Viewer появится ошибка: "connect: Connection timed out (10060)"

2. В данном примере используется пользователь root, если другие пользователи также должны входить,则需要 скопировать файл в

cp /lib/systemd/system/[email protected]/lib/systemd/system/vncserver@:2.service

В то же время, измените %i на 2 и создайте vncpasswd для соответствующего пользователя.

3. Вы можете получить доступ через UltraVNC, TigerVNC или RealVNC Viewer, я мог подключиться к этим трем инструментам на win7

Спасибо за чтение, надеюсь, это поможет вам, спасибо за поддержку нашего сайта!

Рекомендуем вам