Перенаправление портов отладки для удаленного использования записной книжки Jupyter

Я пытаюсь использовать ноутбук Jupyter на удаленном компьютере. Настройка выглядит следующим образом: у меня есть домашний ноутбук, который может подключаться по ssh к определенному компьютеру в сети моего университета (например, gateway.myuniv.edu). После входа в gateway.myuniv.edu я могу подключиться по ssh к компьютеру, на котором я хочу запустить сервер записной книжки Jupyter (например, cluster.myuniv.edu).

Что работает: я могу запустить сервер на шлюзе и подключиться к нему со своего портативного компьютера, используя локальную переадресацию портов, как показано ниже:

On gateway.myuniv.edu: $ jupyter notebook --no-browser --port 8888

На моем ноутбуке: $ ssh -v -N -L 9000:localhost:8888 [email protected]

Затем в браузере ноутбука я открываю URL: https://localhost:9000

Что не работает: я не хочу запускать сервер на шлюзе, так как я не могу выполнять там тяжелые вычисления. Я пытался сделать следующее:

On cluster.myuniv.edu: $ jupyter notebook --no-browser --port 8888

На моем ноутбуке: $ ssh -v -N -L 9000:cluster.myuniv.edu:8888 [email protected]

Затем в браузере ноутбука я открываю URL: https://localhost:9000. Это не работает: SSH сообщает, что в соединении отказано.

Я не понимаю, почему это могло произойти и как это отладить, буду рад любой помощи. Спасибо!

См. также:  Как загружать / редактировать / запускать / сохранять текстовые файлы (.py) в ячейку записной книжки IPython?
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. R S

    Проблема в том, что вы перенаправляете порт :8888 на cluster.myuniv.edu на порт :9000 на gateway.myuniv.edu, а затем перенаправляете порт :8888 на gateway.myuniv.edu на порт 9000 на вашем портативном компьютере.

    Решение было бы следующим:

    На cluster.myuniv.edu: $ jupyter notebook --no-browser --port 8888

    На gateway.myuniv.edu: $ ssh -v -N -L 8888:localhost:8888 [email;protected]

    На ноутбуке: $ ssh -v -N -L 9000:localhost:8888 [email;protected]

    Я также рекомендовал бы вам запустить ноутбук Jupyter (в кластере) и туннелирование ssh (на шлюзе) с помощью Tmux или Screen, чтобы он оставался активным, даже если вы закроете терминал.

    Это почти работает: команда на шлюзе должна ssh для кластера: $ ssh -v -N -L 8888:localhost:8888 [email;protected]. Когда я так делаю, это работает. Отредактировал ваш ответ — спасибо! person R S; 07.08.2016

    Благодарность! Я рад, что у тебя все получилось. Не могли бы вы отметить вопрос как отвеченный? person R S; 07.08.2016

    Конечно. И последнее, не могли бы вы объяснить, почему ssh -v -N -L 9000:cluster.myuniv.edu:8888 [email;protected] приводит к тому, что я перенаправляю порт :8888 на cluster.myuniv.edu на порт :9000 на gateway.myuniv.edu, а затем перенаправляю порт :8888 на gateway.myuniv.edu на порт 9000 на моем ноутбуке? Для меня это не имеет смысла. person R S; 07.08.2016

    Надеюсь, это объяснение поможет: так что в основном вы запускаете ipython notebook на :8888 в кластере. Для подключения к кластеру необходимо подключиться через шлюз. Это означает, что вы подключаетесь: Портативный компьютер — ›Шлюз -› Кластер. Теперь он включен :8888 в кластере, поэтому вы выбираете порт на шлюзе для туннелирования к :8888 в кластере. Выбираем и :8888 (можете выбрать все, что захотите). Теперь, наконец, мы туннелируем к шлюзу и пересылаем :8888 на :9000 на нашем ноутбуке. person R S; 08.08.2016

    Это также должно работать: В кластере: $ jupyter notebook --no-browser --port 8888 На шлюзе: $ ssh -v -N -L 8001:localhost:8888 На портативном компьютере: $ ssh -v -N -L 9000:localhost:8001 [email;protected] person R S; 08.08.2016

    Спасибо. Это подробно объясняет, почему ваше решение работает, что я понимаю, но не почему мое исходное однострочное решение терпит неудачу, чего я не понимаю. person R S; 08.08.2016

    Извините, я неправильно понял ваш вопрос. Я не уверен, почему один лайнер не работает. Возможно, стоит задать новый вопрос о stackoverflow. person R S; 09.08.2016

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: