Я пытаюсь сделать некоторую передачу X11, и я был полностью потерян. Я нашел очень хорошие ответы, объясняющие теорию:
Но я все еще раскидываюсь при применении его на практике.
Вот то, что я сделал:
mobaxterm
то, которое создает X-сервер на моей машине (Windows, не должно иметь значения).ssh -X server1
echo $DISPLAY
дает localhost:10.0
xeyes
- открывает окно на моей локальной машине. Большой, но почему делает localhost
прямо к моей машине? Не был должен это быть server1
?Насколько я понимаю localhost
равно 127.0.0.1
который является локальным адресом. Таким образом, если я подключен с server1
не был должен это искать X-сервер на server1
?
Это происходит точно, потому что Вы выполняете X11 , отправляя (или возможно мог быть назван туннелированием X11 ).
Вы могли включить X серверов, соединиться с отдаленным хозяином, и на котором отдаленный хозяин установил $DISPLAY указывать назад на Ваш оригинальный компьютер. В этом случае (если бы сеть, разрешения и т.д. настроены правильно) Ваше графическое приложение попыталось бы соединиться с Вашим рабочим столом, чтобы представить его окно там, независимо от Вашего существующего ssh соединения, и соответственно, вероятно, по незашифрованному каналу.
Вместо этого то, что происходит, - то, что Ваше заявление полагает, что представляет окно на том же компьютере, и не зная к тому применению, ssh
выгоды это и направляет действия назад к Вашему оригинальному компьютеру под его собственным зашифрованным каналом.
Одно преимущество этого метода состоит в том, что трафик зашифрован. Другое преимущество состоит в том, что Вы не должны позволять другим (с надлежащей идентификацией, управлением доступом) соединиться с Вашей машиной, плюс он даже работает, если Ваша местная машина неадресуема от отдаленной (например, находится позади брандмауэра, или на частной сети и т.д.).