Сценарий. На локальном компьютере вы хотите открыть и управлять блокнотом Juniper, работающим на удаленном компьютере. Мы сделаем это, открыв туннель SSH. Этот туннель перенаправляет порт, используемый удаленно работающим экземпляром Jupyter, на порт на локальной машине, где к нему можно получить доступ в браузере, точно так же, как локально работающий экземпляр Jupyter.
На удаленном компьютере запустите сервер ноутбуков Jupyter:
remote_user@remote_host$ Jupyter notebook --no-browser --port=8889
Обычно Jupyter открывает браузер для отображения доступных ноутбуков, но нам это не нужно, поэтому мы используем опцию --no-browser
. Мы также изменим порт на 8889
, только для того, чтобы показать, как это делается.
На локальном компьютере запустите туннель SSH:
local_user@local_host$ ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host
Первая опция -N
сообщает SSH, что удаленные команды не будут выполняться, и полезна для переадресации портов. Второй параметр -f
приводит к тому, что SSH переходит в фоновый режим, поэтому локальный терминал, поддерживающий туннель, остается пригодным для использования. Последняя опция -L
отображает конфигурацию переадресации портов (с удаленного порта 8889 на локальный порт 8888).
Теперь откройте браузер на локальном компьютере и введите в адресную строку
localhost:8888
, который отображает ваш удаленно работающий сервер ноутбука Jupyter.
Чтобы закрыть туннель SSH на локальном компьютере, найдите процесс и уничтожьте его вручную:
local_user@local_host$ ps aux | grep localhost:8889
local_user 18418 0.0 0.0 41488 684 ? Ss 17:27 0:00 ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host
local_user 18424 0.0 0.0 11572 932 pts/6 S+ 17:27 0:00 grep localhost:8889
local_user@local_host$ kill -15 18418
Кроме того, вы можете запустить туннель без опции -f
. Затем процесс останется на переднем плане и может быть убит с помощью ctrl-c
.
На удаленной машине убейте сервер Jupyter с помощью ctrl-c
ctrl-c
.