Тема: Підключення по RDP до CentOS VM вертає порожній чорний екран

Підключаюся через Remmina із Debian. Є підозри на ту Centos VM, доступ до якої Я маю лише по ssh, і там ніколи не було ніякого DE (це свіжа віртуалка у хмарах). Виникла потреба скористатися браузером прямо на тій машині. Я виконав такі кроки (підключив відповідні репозиторії):

yum groupinstall "GNOME Desktop"
yum install xrdp tigervnc-server

Перевірив хrdp статус - виконується. Якщо з консолі (по ssh) виконати gnome-session:

Прихований текст
gnome-session
No protocol specified

** (gnome-session-check-accelerated:3851): WARNING **: Could not open X display

(gnome-session-check-accelerated:3851): Gtk-WARNING **: cannot open display: 
No protocol specified

** (gnome-session-check-accelerated:3859): WARNING **: Could not open X display

(gnome-session-check-accelerated:3859): Gtk-WARNING **: cannot open display: 

** (process:3846): WARNING **: software acceleration check failed: Child process exited with code 1
No protocol specified

** (gnome-session:3846): WARNING **: Could not open X display

** (gnome-session:3846): WARNING **: Cannot open display: 

А ось sudo startx як ніби запускається:

Прихований текст
Build Date: 10 April 2015  11:44:42AM
Build ID: xorg-x11-server 1.15.0-33.el7_1 
Current version of pixman: 0.32.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.3.log", Time: Fri May 29 09:05:51 2015
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
setversion 1.4 failed: Permission denied
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
setversion 1.4 failed: Permission denied
^Cxinit: connection to X server lost

waiting for X server to shut down (EE) Server terminated successfully (0). Closing log file.

xinit: unexpected signal 2

Ось лог xrdp:

Прихований текст
sudo tail /var/log/xrdp-sesman.log 
[20150529-08:33:38] [INFO ] ++ terminated session:  username sergius, display :11.0, session_pid 2539, ip 172.30.222.193:48487 - socket: 7
[20150529-08:37:59] [INFO ] scp thread on sck 7 started successfully
[20150529-08:37:59] [INFO ] ++ reconnected session: username sergius, display :10.0, session_pid 1932, ip 172.30.222.193:48562 - socket: 7
[20150529-08:43:07] [INFO ] scp thread on sck 7 started successfully
[20150529-08:43:07] [INFO ] ++ reconnected session: username sergius, display :10.0, session_pid 1932, ip 172.30.222.193:48623 - socket: 7
[20150529-08:43:54] [INFO ] scp thread on sck 7 started successfully
[20150529-08:43:54] [INFO ] ++ created session (access granted): username sergius, ip 172.30.222.193:48626 - socket: 7
[20150529-08:43:54] [INFO ] starting Xvnc session...
[20150529-08:43:55] [INFO ] starting xrdp-sessvc - xpid=3412 - wmpid=3411
[20150529-08:44:01] [INFO ] ++ terminated session:  username sergius, display :11.0, session_pid 3410, ip 172.30.222.193:48626 - socket: 7

Я вважаю, що  шось не так з тою віртуалкою, але ще жодного разу не колупав "ікси" віддалено, при цьому коли не можна побачити чи воно працює локально. Прошу хоча би з цим питанням допомогти (а не як завжди останнім часом на цьому форумі Я сам собі знаходжу відповідь)

2

Re: Підключення по RDP до CentOS VM вертає порожній чорний екран

так ісходний код відкрито, можна легко виправити помилку, це ж опенсорс )))
а так по ділу, ssh треба збирати з якимось ключем спеціально для Х і віддаленої роботи, який не згадаю зараз

3

Re: Підключення по RDP до CentOS VM вертає порожній чорний екран

Так до чого тут це? ssh -X працює, але є проблема якраз із рдп. І раз вже вона появилася, Я хочу це виправити

4

Re: Підключення по RDP до CentOS VM вертає порожній чорний екран

reverse2500 написав:

так ісходний код відкрито, можна легко виправити помилку, це ж опенсорс )))

Можна. А в закритому ні.

Прихований текст

Лет зе срач беґін

5 Востаннє редагувалося HetmanNet (29.05.2015 14:47:48)

Re: Підключення по RDP до CentOS VM вертає порожній чорний екран

Master_Sergius написав:

Підключаюся через Remmina із Debian. Є підозри на ту Centos VM, доступ до якої Я маю лише по ssh, і там ніколи не було ніякого DE (це свіжа віртуалка у хмарах). Виникла потреба скористатися браузером прямо на тій машині. Я виконав такі кроки (підключив відповідні репозиторії):

yum groupinstall "GNOME Desktop"
yum install xrdp tigervnc-server

Перевірив хrdp статус - виконується. Якщо з консолі (по ssh) виконати gnome-session:

Прихований текст
gnome-session
No protocol specified

** (gnome-session-check-accelerated:3851): WARNING **: Could not open X display

(gnome-session-check-accelerated:3851): Gtk-WARNING **: cannot open display: 
No protocol specified

** (gnome-session-check-accelerated:3859): WARNING **: Could not open X display

(gnome-session-check-accelerated:3859): Gtk-WARNING **: cannot open display: 

** (process:3846): WARNING **: software acceleration check failed: Child process exited with code 1
No protocol specified

** (gnome-session:3846): WARNING **: Could not open X display

** (gnome-session:3846): WARNING **: Cannot open display: 

А ось sudo startx як ніби запускається:

Прихований текст
Build Date: 10 April 2015  11:44:42AM
Build ID: xorg-x11-server 1.15.0-33.el7_1 
Current version of pixman: 0.32.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.3.log", Time: Fri May 29 09:05:51 2015
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
setversion 1.4 failed: Permission denied
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
setversion 1.4 failed: Permission denied
^Cxinit: connection to X server lost

waiting for X server to shut down (EE) Server terminated successfully (0). Closing log file.

xinit: unexpected signal 2

Ось лог xrdp:

Прихований текст
sudo tail /var/log/xrdp-sesman.log 
[20150529-08:33:38] [INFO ] ++ terminated session:  username sergius, display :11.0, session_pid 2539, ip 172.30.222.193:48487 - socket: 7
[20150529-08:37:59] [INFO ] scp thread on sck 7 started successfully
[20150529-08:37:59] [INFO ] ++ reconnected session: username sergius, display :10.0, session_pid 1932, ip 172.30.222.193:48562 - socket: 7
[20150529-08:43:07] [INFO ] scp thread on sck 7 started successfully
[20150529-08:43:07] [INFO ] ++ reconnected session: username sergius, display :10.0, session_pid 1932, ip 172.30.222.193:48623 - socket: 7
[20150529-08:43:54] [INFO ] scp thread on sck 7 started successfully
[20150529-08:43:54] [INFO ] ++ created session (access granted): username sergius, ip 172.30.222.193:48626 - socket: 7
[20150529-08:43:54] [INFO ] starting Xvnc session...
[20150529-08:43:55] [INFO ] starting xrdp-sessvc - xpid=3412 - wmpid=3411
[20150529-08:44:01] [INFO ] ++ terminated session:  username sergius, display :11.0, session_pid 3410, ip 172.30.222.193:48626 - socket: 7

Я вважаю, що  шось не так з тою віртуалкою, але ще жодного разу не колупав "ікси" віддалено, при цьому коли не можна побачити чи воно працює локально. Прошу хоча би з цим питанням допомогти (а не як завжди останнім часом на цьому форумі Я сам собі знаходжу відповідь)

Ти запустив службу?
# service vncserver start
# service xrdp start
# chkconfig xrdp on
# chkconfig vncserver on

чи

# systemctl enable xrdp
# systemctl enable vncserver
# systemctl start xrdp
# systemctl start vncserver

Потім перевір чи запустилися:

# systemctl status xrdp
# systemctl status vncserver

Імена служб можуть трохи інакше іменуватися, я точно не пам’ятаю.
Потім пробий "двері" у стіні:

# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT

Зафіксуй "двері":

# service iptables save
# service iptables restart

чи

# systemctl save iptables
# systemctl restart iptables

Раджу звикати до systemctl, тому якщо він є то набирай його замість service та chkconfig

6

Re: Підключення по RDP до CentOS VM вертає порожній чорний екран

Ну, з vnc на CentOS 7 якісь інші мутки, або Я щось туплю, але там трішки шось не так:

http://www.itzgeek.com/how-tos/linux/ce … hel-7.html

в результаті Я маю ось таке:

sudo systemctl status v
vmtoolsd.service      vncserver@:1.service  vncserver@:2.service  

а не чисто vncserver

Ну і ось страшний iptables

Прихований текст
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
INPUT_direct  all  --  anywhere             anywhere
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere
INPUT_ZONES  all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
FORWARD_direct  all  --  anywhere             anywhere
FORWARD_IN_ZONES_SOURCE  all  --  anywhere             anywhere
FORWARD_IN_ZONES  all  --  anywhere             anywhere
FORWARD_OUT_ZONES_SOURCE  all  --  anywhere             anywhere
FORWARD_OUT_ZONES  all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
OUTPUT_direct  all  --  anywhere             anywhere

Chain FORWARD_IN_ZONES (1 references)
target     prot opt source               destination
FWDI_public  all  --  anywhere             anywhere            [goto]
FWDI_public  all  --  anywhere             anywhere            [goto]

Chain FORWARD_IN_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain FORWARD_OUT_ZONES (1 references)
target     prot opt source               destination
FWDO_public  all  --  anywhere             anywhere            [goto]
FWDO_public  all  --  anywhere             anywhere            [goto]

Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain FORWARD_direct (1 references)
target     prot opt source               destination

Chain FWDI_public (2 references)
target     prot opt source               destination
FWDI_public_log  all  --  anywhere             anywhere
FWDI_public_deny  all  --  anywhere             anywhere
FWDI_public_allow  all  --  anywhere             anywhere

Chain FWDI_public_allow (1 references)
target     prot opt source               destination

Chain FWDI_public_deny (1 references)
target     prot opt source               destination

Chain FWDI_public_log (1 references)
target     prot opt source               destination

Chain FWDO_public (2 references)
target     prot opt source               destination
FWDO_public_log  all  --  anywhere             anywhere
FWDO_public_deny  all  --  anywhere             anywhere
FWDO_public_allow  all  --  anywhere             anywhere

Chain FWDO_public_allow (1 references)
target     prot opt source               destination

Chain FWDO_public_deny (1 references)
target     prot opt source               destination

Chain FWDO_public_log (1 references)
target     prot opt source               destination

Chain INPUT_ZONES (1 references)
target     prot opt source               destination
IN_public  all  --  anywhere             anywhere            [goto]
IN_public  all  --  anywhere             anywhere            [goto]

Chain INPUT_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain INPUT_direct (1 references)
target     prot opt source               destination

Chain IN_public (2 references)
target     prot opt source               destination
IN_public_log  all  --  anywhere             anywhere
IN_public_deny  all  --  anywhere             anywhere
IN_public_allow  all  --  anywhere             anywhere

Chain IN_public_allow (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:fmtp ctstate NEW

Chain IN_public_deny (1 references)
target     prot opt source               destination

Chain IN_public_log (1 references)
target     prot opt source               destination

Chain OUTPUT_direct (1 references)
target     prot opt source               destination

7 Востаннє редагувалося HetmanNet (29.05.2015 20:43:51)

Re: Підключення по RDP до CentOS VM вертає порожній чорний екран

Master_Sergius написав:

Ну, з vnc на CentOS 7 якісь інші мутки, або Я щось туплю, але там трішки шось не так:

http://www.itzgeek.com/how-tos/linux/ce … hel-7.html

в результаті Я маю ось таке:

sudo systemctl status v
vmtoolsd.service      vncserver@:1.service  vncserver@:2.service  

а не чисто vncserver

Ну і ось страшний iptables

Прихований текст
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
INPUT_direct  all  --  anywhere             anywhere
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere
INPUT_ZONES  all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
FORWARD_direct  all  --  anywhere             anywhere
FORWARD_IN_ZONES_SOURCE  all  --  anywhere             anywhere
FORWARD_IN_ZONES  all  --  anywhere             anywhere
FORWARD_OUT_ZONES_SOURCE  all  --  anywhere             anywhere
FORWARD_OUT_ZONES  all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
OUTPUT_direct  all  --  anywhere             anywhere

Chain FORWARD_IN_ZONES (1 references)
target     prot opt source               destination
FWDI_public  all  --  anywhere             anywhere            [goto]
FWDI_public  all  --  anywhere             anywhere            [goto]

Chain FORWARD_IN_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain FORWARD_OUT_ZONES (1 references)
target     prot opt source               destination
FWDO_public  all  --  anywhere             anywhere            [goto]
FWDO_public  all  --  anywhere             anywhere            [goto]

Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain FORWARD_direct (1 references)
target     prot opt source               destination

Chain FWDI_public (2 references)
target     prot opt source               destination
FWDI_public_log  all  --  anywhere             anywhere
FWDI_public_deny  all  --  anywhere             anywhere
FWDI_public_allow  all  --  anywhere             anywhere

Chain FWDI_public_allow (1 references)
target     prot opt source               destination

Chain FWDI_public_deny (1 references)
target     prot opt source               destination

Chain FWDI_public_log (1 references)
target     prot opt source               destination

Chain FWDO_public (2 references)
target     prot opt source               destination
FWDO_public_log  all  --  anywhere             anywhere
FWDO_public_deny  all  --  anywhere             anywhere
FWDO_public_allow  all  --  anywhere             anywhere

Chain FWDO_public_allow (1 references)
target     prot opt source               destination

Chain FWDO_public_deny (1 references)
target     prot opt source               destination

Chain FWDO_public_log (1 references)
target     prot opt source               destination

Chain INPUT_ZONES (1 references)
target     prot opt source               destination
IN_public  all  --  anywhere             anywhere            [goto]
IN_public  all  --  anywhere             anywhere            [goto]

Chain INPUT_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain INPUT_direct (1 references)
target     prot opt source               destination

Chain IN_public (2 references)
target     prot opt source               destination
IN_public_log  all  --  anywhere             anywhere
IN_public_deny  all  --  anywhere             anywhere
IN_public_allow  all  --  anywhere             anywhere

Chain IN_public_allow (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:fmtp ctstate NEW

Chain IN_public_deny (1 references)
target     prot opt source               destination

Chain IN_public_log (1 references)
target     prot opt source               destination

Chain OUTPUT_direct (1 references)
target     prot opt source               destination

Він не страшний, то скоріше всього у вас firewall-cmd, тоді замість:

# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT

треба з'ясувати чи є готове налаштування сервісу для зони командою:

# firewall-cmd --get-services

В довгому переліку скоріше всього буде типу такої назви:

vnc-server

Якщо так, то додаєте командою:

# firewall-cmd --permanent --zone=public --add-service=vnc-server

Якщо немає сервісу vnc то тоді можна командою:

# firewall-cmd --permanent --zone=public --add-port=5905/tcp

Опісля треба про всяк випадок перезавантажити правила в таблицю:

# # firewall-cmd --reload

Але замість public вбийте назву активної зони, взнати яка можна командою:

# firewall-cmd --get-active-zones

Щодо vncserver@:1.service  vncserver@:2.service то це здається означає що у тебе запущено два екземпляри для двох різних користувачів. Тут справа у конфігах і тому що робив.