В значительной степени да; протокол X11 инкапсулирован в SSH. Клиент работает в удаленной системе, сервер работает в локальной системе.
При использовании VNC по сети проходит только трафик VNC, (опционально инкапсулированный, , например. с использованием SSH ). X-сервер работает удаленно, и VNC-клиент подключается к VNC-серверу, который подключается к X-серверу (или является X-сервером ). X-клиенты могут работать где угодно, если они могут подключаться к X-серверу; обычно они находятся в одной и той же удаленной системе.
Xpra реализует собственный протокол, он не пересылает X11. Ситуация идентична VNC. (Xpra также может экспортировать изображение с помощью HTML5.)
См. выше. Различия между Xpra и VNC заключаются в том, что Xpra поддерживает окна без рута (, то есть , может экспортировать одно окно ), обеспечивает больший контроль над дисплеем... VNC существует дольше, чем Xpra (1998 г. v. 2008 ), изначально поддерживается такими инструментами, как QEMU, и имеет клиентов, доступных для большего количества платформ, чем Xpra. Оба могут экспортировать дисплеи из различных систем (X11, Windows,macOS ).
Однако это не совсем то, что вам нужно :Вы можете указать обратный локальный порт host1 или host2 как внешний порт, используя iptables. Допустим, вы подключили свой host2 как реверсивный туннель ssh:
user2@host2 $ ssh -R 9999:localhost:22 user@aws.com
Теперь вы можете перенаправить входящий порт aws.com :9999 на aws [localport :9999] :На сервере AWS:
awsuser@aws.com # iptables -t nat -I PREROUTING -p tcp --dport 9999 -j DNAT --to 127.0.0.1:9999
И теперь вы можете подключиться с хоста 2 к хосту 1 таким образом:
user1@host1 $ ssh awsuser@aws.com -p 9999
Бинго. Вы подключились таким образом:
[хост 1] --> [aws :порт 9999] --> [aws :обратный туннель на 127.0.0.1 :9999] --> [хост 2]
Вы должны удалить запись iptable, когда это соединение больше не используется:
awsuser@aws.com # iptables -t nat -A PREROUTING -p tcp --dport 9999 -j DNAT --to 127.0.0.1:9999
Недостатком этого решения является то, что host2 открыт для всех через внешний порт 9999. Вам все равно нужно ввести пароль для входа в систему -, однако он открыт.
UPD :вам также может понадобиться включить локальную переадресацию:
awsuser@aws # ls echo 1 > /proc/sys/net/ipv4/conf/all/route_localnet
Или вместо того, чтобы включать его для всех интерфейсов, включите только на доходном интерфейсе:
awsuser@aws # ls echo 1 > /proc/sys/net/ipv4/conf/eth0/accept_local