Mah*_*esh 35 remote-access remote-server jupyter-notebook
我可以从我的大学远程访问远程服务器,并且我正在通过本地计算机访问它!但是,我的本地计算机没有足够的内存来运行多个 jupyter 笔记本。有什么方法可以通过远程服务器运行它们,这可能会加快任务速度!但我不太确定!
我从 macOS 中的终端访问服务器。谢谢!!
nih*_*lok 84
这里有一个非常好的教程
本质上,您只需在无浏览器模式下在远程运行笔记本即可。
jupyter notebook --no-browser --port=8080
Run Code Online (Sandbox Code Playgroud)
然后从本地计算机设置 ssh 隧道:
ssh -L 8080:localhost:8080 <REMOTE_USER>@<REMOTE_HOST>
Run Code Online (Sandbox Code Playgroud)
然后在本地浏览器中访问:http://localhost:8080/
不需要在特定端口上运行。标签--no-browser是。
小智 15
我想您可能正在寻找端口转发。
例如,当您通过 ssh 登录远程时,您可以:
在远程计算机上,从当前目录启动 jupyter notebook 并指定端口:
jupyter notebook --no-browser --port=9999
Run Code Online (Sandbox Code Playgroud)
在本地计算机上,捕获转发的端口:
ssh -NfL localhost:9999:localhost:9999 your_user_name@remote_ip_address
Run Code Online (Sandbox Code Playgroud)
去http://localhost:9999。您应该能够选择您的笔记本,然后就可以开始了。
Jan*_*i D 10
jupyter notebook --no-browser --ip="<remote server ip>"您可以在远程机器终端上运行。并从本地计算机上的浏览器使用 http://:8888/?token=<> 访问笔记本。
我们假设本地用户localuser和主机为localhost,远程用户和远程主机为remoteuser和remotehost。要从本地计算机在远程服务器上运行 Jupyter 笔记本,您可以按照以下步骤操作。
在远程计算机上运行 Jupyter 笔记本并--no-browser指定端口
jupyter notebook --no-browser --port=XXXX
Run Code Online (Sandbox Code Playgroud)
通过 SSH 将其转发到本地计算机
ssh -N -f -L localhost:YYYY:localhost:XXXX remoteuser@remotehost
Run Code Online (Sandbox Code Playgroud)
打开浏览器并转到http://localhost:YYYY
您可能需要关闭连接
CTRL+C然后停止正在运行的笔记本y
终止在端口上运行的进程YYYY,netstat返回进程 ID (PID)
sudo netstat -lpn | grep :YYYY -> for LINUX
sudo netstat -anv | grep YYYY -> for MacOS
kill PROCESS_ID
Run Code Online (Sandbox Code Playgroud)
小智 6
要使用浏览器访问远程计算机,笔记本电脑必须侦听面向外部的端口(而不是本地主机)。如果想在容器上运行 Jupyter 笔记本,您将需要相同的调用。在这种情况下,它是这样的:
jupyter notebook --no-browser --port=8080 --ip=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
要仅在本地主机中监听,则可以省略 IP
jupyter notebook --no-browser --port=8080
Run Code Online (Sandbox Code Playgroud)
要远程访问其他答案中的 ssh 隧道选项,是可行的。每个笔记本都需要一个 SSH 隧道。如果您需要运行多个笔记本,另一个选择是使用该sshuttle工具通过 SSH 模拟 VPN,这样您就不必创建多个隧道。使用选项运行sshuttle可以完全访问远程计算机的网络(例如 10.250.100.40/24),或者您可以运行它以通过远程计算机转发所有流量(如传统 VPN)。
# forward all traffic to network of remote server over the SSH VPN
sshuttle --dns -NHr username@sshserver 10.250.100.40/24
# forward all traffic through the remote server over the SSH VPN
sshuttle --dns -NHr username@sshserver 0/0
Run Code Online (Sandbox Code Playgroud)
注意:DNS 标志对于能够使用远程计算机 DNS 进行名称解析非常重要。
然后执行笔记本来监听外部端口。例如,运行 3 个笔记本。
jupyter notebook --no-browser --port=8080 --ip=0.0.0.0
jupyter notebook --no-browser --port=8081 --ip=0.0.0.0
jupyter notebook --no-browser --port=8082 --ip=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
运行笔记本进行身份验证时,您将在输出上使用令牌。它将像这样显示输出
http://server.example.com:8080/tree?token=dd9024f1fb68434645d3902d161f41720650644dc5832f16
Run Code Online (Sandbox Code Playgroud)
假设远程服务器没有阻止到这些端口的流量,那么在您的本地计算机上,就像打开浏览器一样简单
http://<name-of-remote-machine>:8080/tree?token=<your-token>
http://<name-of-remote-machine>:8081/tree?token=<your-token>
http://<name-of-remote-machine>:8082/tree?token=<your-token>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113104 次 |
| 最近记录: |