Туннельный брокер SSH через IPV4 для машин за CNAT

  1. В значительной степени да; протокол X11 инкапсулирован в SSH. Клиент работает в удаленной системе, сервер работает в локальной системе.

  2. При использовании VNC по сети проходит только трафик VNC, (опционально инкапсулированный, , например. с использованием SSH ). X-сервер работает удаленно, и VNC-клиент подключается к VNC-серверу, который подключается к X-серверу (или является X-сервером ). X-клиенты могут работать где угодно, если они могут подключаться к X-серверу; обычно они находятся в одной и той же удаленной системе.

  3. Xpra реализует собственный протокол, он не пересылает X11. Ситуация идентична VNC. (Xpra также может экспортировать изображение с помощью HTML5.)

  4. См. выше. Различия между Xpra и VNC заключаются в том, что Xpra поддерживает окна без рута (, то есть , может экспортировать одно окно ), обеспечивает больший контроль над дисплеем... VNC существует дольше, чем Xpra (1998 г. v. 2008 ), изначально поддерживается такими инструментами, как QEMU, и имеет клиентов, доступных для большего количества платформ, чем Xpra. Оба могут экспортировать дисплеи из различных систем (X11, Windows,macOS ).

1
19.11.2017, 20:49
1 ответ

Однако это не совсем то, что вам нужно :Вы можете указать обратный локальный порт 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
0
30.03.2020, 10:37

Теги

Похожие вопросы