Π”Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° x11vnc

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ Π½Π° всички,

Π² Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ простори Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ статии Π½Π° Ρ‚Π΅ΠΌΠ° ΠΊΠ°ΠΊ Π΄Π° настроим ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π° сСсия Xorg Ρ‡Ρ€Π΅Π· x11vnc, Π½ΠΎ никъдС Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… ΠΊΠ°ΠΊ Π΄Π° Π·Π°Π±Ρ€Π°Π½ΠΈΠΌ локалния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΈ Π²Ρ…ΠΎΠ΄Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ всСки, ΠΊΠΎΠΉΡ‚ΠΎ сСди Π΄ΠΎ отдалСчСния ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€, Π΄Π° Π½Π΅ Π²ΠΈΠΆΠ΄Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΈ Π΄Π° Π½Π΅ натиска Π±ΡƒΡ‚ΠΎΠ½Ρ‡Π΅Ρ‚Π° във Π²Π°ΡˆΠ°Ρ‚Π° сСсия. По-Π΄ΠΎΠ»Ρƒ сподСлям моя ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ x11vnc ΠΏΠΎ-ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Windows Ρ‡Ρ€Π΅Π· RDP.

И Ρ‚Π°ΠΊΠ°, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌ, Ρ‡Π΅ Π²Π΅Ρ‡Π΅ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ x11vnc, Π°ΠΊΠΎ Π½Π΅ β€” ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π² Google ΠΈΠ»ΠΈ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΡƒΠΊ.

Π”Π°Π΄Π΅Π½ΠΎ: стартирамС x11vnc, ΡΠ²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ сС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚, всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π½ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π° Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ΡΡŠΡ‰ΠΎ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²Ρ…ΠΎΠ΄.

ИскамС: Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π° (ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ + ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° + мишка), Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½ΠΈΡ‰ΠΎ Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ ΠΈ въвСдС.

Π˜Π·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚Π΅

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΈ Π΄ΠΎΠΉΠ΄Π΅ Π½Π° ΡƒΠΌΠ°, бСшС просто Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Ρ‡Ρ€Π΅Π· xrandr, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠ°:

$ xrandr --output CRT1 --off

Π½ΠΎ ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° срСда (ΠΏΡ€ΠΈ ΠΌΠ΅Π½ KDE) Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° мисли, Ρ‡Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΡŠΡ‚ наистина Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° прСмСства ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ ΠΈ ΠΏΠ°Π½Π΅Π»Ρ‡Π΅Ρ‚Π°, всичко сС размСства ΠΈ става Ρ‚ΡŠΠΆΠ½ΠΎ.
Има ΠΏΠΎ-интСрСсСн Π½Π°Ρ‡ΠΈΠ½, ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ Π² Ρ‚ΠΎΠ²Π° Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Π² сън, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠ°:

$ xset dpms force off

Π½ΠΎ Ρ‚ΡƒΠΊ ΡΡŠΡ‰ΠΎ Π½Π΅ Π΅ всичко Π³Π»Π°Π΄ΠΊΠΎ. БистСмата ΡΡŠΠ±ΡƒΠΆΠ΄Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅. Помага ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‡ΡŠΠΊ Ρ‚Ρ€ΠΈΠΊ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Ρ†ΠΈΠΊΡŠΠ»:

while :
do
    xset dpms force off
    sleep .5
done

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π½Π΅ сС замислях β€” просто бСшС ΠΌΡŠΡ€Π·Π΅Π», изпълнява Ρ†Π΅Π»Ρ‚Π° си β€” ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½ΠΈΡ‰ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚, Π΄ΠΎΡ€ΠΈ ΠΏΡ€ΠΈ натисканС Π½Π° Π±ΡƒΡ‚ΠΎΠ½ΠΈ, ΠΌΡŠΡ€Π΄Π°Π½Π΅ с ΠΌΠΈΡˆΠΊΠ°Ρ‚Π° ΠΈ Ρ‚.Π½.

UPD:

Благодаря amarao Π·Π° ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ с намаляванС Π½Π° яркостта Π΄ΠΎ Π½ΡƒΠ»Π°:

$ xrandr --output CRT1 --brightness 0

Π˜Π·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Π²Ρ…ΠΎΠ΄Π°

Π—Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ…ΠΎΠ΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ… xinput. ΠŸΡ€ΠΈ стартиранС Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Ρ‚ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π²Π° списък с устройства:

$ xinput
⎑ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Laser Mouse                  id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ USB 2.0 Camera: HD 720P Webcam            id=10   [slave  keyboard (3)]
    ↳ HID 041e:30d3                             id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]

Устройства Virtual core… Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ β€” ΠΏΠΎΠΊΠ°Π·Π²Π° Π³Ρ€Π΅ΡˆΠΊΠ°, Π½ΠΎ останалитС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° останСтС Π±Π΅Π· мишка Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Π°:

xinput disable 9; sleep 60; xinput enable 9

Π“ΠΎΡ‚ΠΎΠ²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π—Π° случая си Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… скрипт, ΠΊΠΎΠΉΡ‚ΠΎ стартирам Π² ssh сСсия. Π’ΠΎΠΉ гаси локалния Π²Ρ…ΠΎΠ΄ ΠΈ стартира x11vnc ΡΡŠΡ€Π²ΡŠΡ€, Π° слСд ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° скрипта всичко сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ… Ρ‚Ρ€ΠΈ скрипта, Π΅Ρ‚ΠΎ Π³ΠΈ (Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ).

switch_local_console:

#!/bin/sh

case $1 in
    1|on)
    desired=1
    ;;
    0|off)
    desired=0
    ;;
    *)
    echo "USAGE: $0 0|1|on|off"
    exit 1
    ;;
esac

keyboards=`xinput | grep -v "XTEST" | grep "slave  keyboard" | sed -re 's/^.*sid=([0-9]+)s.*$/1/'`
mouses=`xinput | grep -v "XTEST" | grep "slave  pointer" | sed -re 's/^.*sid=([0-9]+)s.*$/1/'`
monitors=`xrandr | grep " connected" | sed -re 's/^(.+) connected.*$/1/'`

for device in $mouses
do
    xinput --set-prop $device "Device Enabled" $desired
done

for device in $keyboards
do
    xinput --set-prop $device "Device Enabled" $desired
done

for device in $monitors
do
    xrandr --output $device --brightness $desired
done

disable_local_console:

#!/bin/sh

trap "switch_local_console 1" EXIT

while :
do
    switch_local_console 0
    sleep 1
done

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ скрипт (ΠΈΠΌΠ°ΠΌ Π΄Π²Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°, стартирам Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ‰ ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΠΏΠΎ Π΅Π΄ΠΈΠ½ Π½Π° всСки ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€).

vnc_server:

#!/bin/bash

[[ ":0" == "$DISPLAY" ]] && echo "Should be run under ssh session" && exit 1

export DISPLAY=:0

killall x11vnc

rm -r /tmp/x11vnc
mkdir -p /tmp/x11vnc/{5900,5901,5902}

params="-fixscreen V=5 -forever -usepw -noxkb -noxdamage -repeat -nevershared"

echo "Starting VNC servers"

x11vnc -rfbport 5900 $params 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5900 &
x11vnc -rfbport 5901 $params -clip 1920x1080+0+0 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5901 &
x11vnc -rfbport 5902 $params -clip 1920x1080+1920+0 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5902 &

echo "Waiting VNC servers"
while [ `ps afx | grep -c "x11vnc -rfbport"` -ne "4" ]
do
    sleep .5
done

echo "Disabling local console"
disable_local_console

echo "Killing VNC servers"
killall x11vnc

БобствСнно всичко. Π’Π»ΠΈΠ·Π°ΠΌΠ΅ ΠΏΠΎ ssh, стартирамС vnc_server, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΅ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½, ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Ρ‡Ρ€Π΅Π· vnc ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°.

Благодаря Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, допълнСния ΠΈ подобрСния са Π΄ΠΎΠ±Ρ€Π΅ дошли.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster