本地访问远程服务器上的jupyter notebook+jupyter上使用虚拟环境

本文档详细记录了如何通过本地访问远程服务器上的Jupyter Notebook,并使用虚拟环境。首先,按照知乎文章配置远程服务器,注意配置文件中的IP和端口设置。对于无root权限的情况,采用SSH端口转发,通过特定命令实现访问。然后,在Jupyter上使用虚拟环境,参照教程安装并激活所需环境,确保在Jupyter中可用。过程中可能会遇到权限问题,需添加`--user`参数解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没想到搞这搞了这么久,记录一下网上查资料+自己尝试踩到的坑。

本地访问远程服务器上的jupyter notebook

我是按照知乎 如何设置远程访问的Jupyter Notebook服务器-04(服务器篇)这篇文章来配的,几点需要注意。

一是文中说的所有关于jupyter的设置都是在远程服务器上进行的。

二是他的(3)编辑配置文件 这一步可以不写‘*’,换成远程服务器的ip。这里我因为不熟悉所谓内网ip搞了好久,总结下经验教训就是在远程服务器上ifconfig,然后把出来的所有网里的inet addr都拿去试一试(当然127.0.0.1这种肯定不用试了)。然后jupyter notebook运行下看看ok不,应该只有一个ip设好后不会报错,其他的都会报错说OSError: [Errno 99] Cannot assign requested address。以及他的改端口这一步不是必须的,当然改ip是必须的。

三是防火墙那步开始就不用跟了,对于没有root权限的来说是没办法设的。我后来找了 通过 SSH 端口转发搭建 Jupyter notebook 服务器 这篇文章,捣鼓了一下,ssh转发命令应该如下。

ssh -L a:b:c <username>@<remote ip> -p <port>
# 这里面的a,b,c处分别填写:
# a处:随便填一个用来登jupyter的端口,示例给的4000
# b处:(3)编辑配置文件 这一步里写的ip。
# c处:(3)里面改的端口,没改的看下面这条
# 可以再远程服务器上运行jupyter,然后它会给你一个链接,那个链接就是b:c的组合,直接copy来用就行

至于abc后面那些username之类的是什么呢?我的情况是实验室的小集群有统一的对外ip,所以平时一般都是我们拿分给我们的账号从一个指定的端口先登入,然后再通过ssh到具体的服务器上。

故先在远程服务器上运行jupyter,然后另开一个本地终端输入上面的命令,然后它会让你输密码,像是登录了一次一样。之后再试着在本地浏览器上输入 localhost:4000,这里的4000就是上面a处你设来等jupyter的端口。接下来就可以看到他们所谓的浏览器上加载出来jupyter登录界面要你输密码这步了。

jupyter上使用虚拟环境

本来以为搞到这里就好了,结果在服务器上能用的虚拟环境jupyter上运行不了,查了后具体参考 windows系统下jupyter notebook使用虚拟环境 这篇。用的是他标的【未测试】那里面的方法。注意的是他的最后一个命令要改成

python -m ipykernel install --user --name Name

如果不加上--user的话会报错[Errno 13] Permission denied

然后重新运行下jupyter,应该可以在kernal里找到你要的虚拟环境了。

### 如何在远程服务器上配置并运行 Jupyter Notebook #### 配置环境 为了能够在远程服务器上成功运行 Jupyter Notebook,首先需要确保服务器已经安装了必要的依赖项。如果尚未安装 Jupyter Notebook,则可以通过以下命令完成安装: 对于基于 Conda 的环境,可以执行如下操作来安装 Jupyter Notebook: ```bash conda install notebook ``` 此方法适用于大多数科学计算场景下的 Python 虚拟环境管理工具[^2]。 #### 启动服务 启动 Jupyter Notebook 可以通过多种方式进行调整,具体取决于用户的实际需求和权限情况。以下是常见的几种方式及其对应的指令说明: - **默认模式** 使用标准的方式启动 Jupyter Notebook: ```bash jupyter notebook ``` - **无浏览器模式** 如果不需要自动打开网页界面或者希望减少不必要的资源消耗,可以选择不开启浏览器窗口: ```bash jupyter notebook --no-browser ``` - **指定端口号** 当存在多个程序占用常用端口时,可通过设定特定端口避免冲突: ```bash jupyter notebook --no-browser --port=8005 ``` - **允许 Root 用户访问** 对于某些特殊情况下由超级管理员身份登录的情况,需额外增加选项支持该功能: ```bash jupyter notebook --allow-root ``` - **后台持续运行** 利用 `nohup` 命令可以让进程独立于当前会话继续工作,即便关闭终端也不会影响其正常运转: ```bash nohup jupyter notebook & ``` 以上每种形式都有各自适用范围,请依据实际情况选取合适的方法[^3]。 #### 远程连接设置 当上述步骤完成后,还需要进一步处理网络层面的安全性和可达性问题。通常做法包括但不限于修改配置文件、创建 SSH 隧道等手段增强交互体验的同时保障数据传输安全。 ##### 修改 Config 文件 生成一个新的个性化配置文档,并对其进行编辑以便自定义更多高级特性比如密码保护机制或是启用 HTTPS 加密通信等功能。 ```bash jupyter notebook --generate-config vim ~/.jupyter/jupyter_notebook_config.py ``` 在此过程中可加入类似下面这样的语句实现更严格的控制策略: ```python c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = 8888 c.NotebookApp.password = 'sha1:<your_hashed_password>' ``` ##### 设置 SSH Tunneling (SSH 隧道) 建立一条加密通道使得本地客户端能够透明地访问远端的服务实例而无需暴露公网IP地址给外界攻击者尝试入侵的风险。 ```bash ssh -N -f -L localhost:8888:localhost:8888 user@remote_host ``` 这样就可以像平常一样从个人电脑上面直接加载对应网址链接进入目标平台开展研究活动啦! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值