Я пытаюсь настроить ssh-туннелированное соединение vnc с моего компьютера centos 5.10, и я следую некоторым онлайн-учебникам, таким как этот: https://wiki.archlinux.org/index.php/Vncserver. Я запускаю сервер следующим образом: $ vncserver -geometry 1024x768 -localhost :1
и подключаюсь к клиенту openssh следующим образом: ssh -f me@vnc.machine -L 5900:vnc.machine:5901 -N
. Затем я подключаюсь к realvnc viewer к localhost: 5900. По какой-то причине это не работает, если я использую параметр -localhost, но отлично работает, если я пропущу его. Все руководства говорят, что это более безопасно использовать. Я думаю, что это может быть проблема конфигурации на стороне сервера, но я в значительной степени озадачен на этом этапе, и я много чего перепробовал. Кто-нибудь может сказать мне, почему это происходит?
2 ответа
Опция -localhost
серверу VNC подключаться только к интерфейсу обратной связи, чтобы вы могли подключаться к серверу VNC только с компьютера, на котором он работает. Это означает, что любой, пытающийся проникнуть в ваш сеанс VNC, должен иметь возможность войти на эту конкретную машину. Без -localhost
ваш VNC-сервер будет принимать нелокальные соединения, поэтому злоумышленник может использовать другую машину, чтобы попытаться проникнуть в ваш VNC-сеанс.
Если вы собираетесь использовать -localhost
, то вы должны передать -L 5900:localhost:5901
, а не -L 5900:vnc.machine:5901
, так как ваш VNC-сервер прослушивает только по интерфейсу обратной связи (localhost).
jjlin
охватывает устранение неполадок, но чтобы действительно обеспечить его безопасность, вы также должны передать -nolisten tcp
в vncserver
. Это гарантирует, что не будет открытого слушателя TCP на стороне X
вещей.