如何利用windows本机调用Linux服务器,以及如何调用jupyter界面远程操控

其实这篇文章没必要存在,教程太多了

参考博客(1 2 3),如侵删

奈何网上的大神总是会漏掉一些凡人遇到的小问题

(1) 建议下载PuTTy for windows,从而建立与远程服务器的SSH连接

需要确认目标服务器的ip(或者网站地址) 端口号 以及用户名与密码

(2)搭建Python等环境,建议找一个好用的requirement

比如提前利用scp命令将自己要跑的,要复现的代码的requirement上传上去, 再用pip或者conda指令安装requirement的库

所以一个团队制作一个合格的requirement,确保涵盖大多需求是比较合理的

如何用scp将多个文件夹上传到服务器或下载回本地,参考博客(4

例如将我 的本地代码 E:/GAN 文件目录下所有的文件,上传到身份为 root 的远程服务器 1.1.1.1 的文件路径 home/me 上

bash 复制代码
scp -r E:/GAN root@1.1.1.1:/home/me/

或者带端口 2222 的服务器

bash 复制代码
scp -P 2222 E:/GAN root@1.1.1.1:/home/me/

(3)因为重点想实现远程跑jupyter,本地可视化,所以需要额外的步骤

为避免小白重进坑,此处借鉴博客(1 2 3)的步骤加以修改

1 jupyter notebook远程访问设置
conda activate abc	#激活虚拟环境[不在虚拟环境中可以省略此步骤]

pip install jupyter	#安装

jupyter notebook --generate-config	#生成配置文件

安装完成后,Jupyter会生成一个默认的配置文件。这个配置文件通常位于~/.jupyter/jupyter_notebook_config.json。

2 在服务器上生成加密密钥

为了安全地连接Jupyter Notebook,您需要生成一个加密密钥。

首先,在终端输入python指令进行python环境,

bash 复制代码
python

并依次执行:

bash 复制代码
from IPython.lib import passwd 
passwd()
2.1 如果出现如下错误,(我出现了)

则可能是您的python版本过高,可以换条指令:

from notebook.auth import passwd
passwd()

如果仍然出现报错(是的,我还是):

可以继续换指令(下面指令在python3.8中不报错):

from jupyter_server.auth import passwd
passwd()
这三条指令都会提示您输入和确认一个密码。这个密码将被用于加密Jupyter Notebook的连接(复制密文备用,如下图所示)。

输入 exit() 就可以退出python环境。

3 修改服务器配置文件

执行以下指令进入Jupyter的配置文件~/.jupyter/jupyter_notebook_config.json。

vim ~/.jupyter/jupyter_notebook_config.py

此外,进入这个py文件后, 可以看到如下的内容。

如果你没看到,可能是没生成设置文件。 请再次尝试

jupyter notebook --generate-config	#生成配置文件

linux系统服务器中可使用 :$ 进行索引定位到文件底部。

小白可以当光标到达最后一个字符位置后,按下小写字母o就可以换行并允许输入了。然后在这个最后面增加如下内容:

c.NotebookApp.ip='*'
c.NotebookApp.password = u'argon2:xxxxxxxxxxxxxxxxxxx'  # 先前备份的加密密钥
c.NotebookApp.port = 8888 # 随便设定一个端口
c.NotebookApp.open_browser = False
c.NotebookApp.allow_remote_access = True
c.NotebookApp.allow_root = True
c.NotebookApp.notebook_dir = '/project'  # 定义notebook的起始路径

这里一定要确认自己的加密秘钥, 以及 最后的启示路径, 因为团队中可能会分配各自的文件夹,所以这里最好给自己分配为自己的文件夹。后续方便本地调试jupyter。

4 回到本地的windows(其他也行),利用cmd建立与远程服务器的链接

在您的本地机器上打开命令提示符或终端。使用SSH命令连接到远程服务器。例如,如果远程服务器的IP地址是192.168.0.100,用户名是root,端口号是50001,那么可以使用以下命令:

bash 复制代码
ssh -p 50001 root@192.168.0.100 -L127.0.0.1:8889:127.0.0.1:8889

当然,如果服务器给你的是一个网址,也可以直接把上述的服务器ip改成你的服务器网址。

5 在服务器上使用jupyter

当然,如果你是重新启动了服务器, 先激活自己的环境(activate),进入(cd)自己的文件夹后,启动jupyter:

bash 复制代码
jupyter notebook --no-browser

服务器会输出:

6 在本地浏览器上远程访问jupyter

bash 复制代码
http://localhost:8889/tree

然后就会出现

输入你设置的密码,忘了可以重新设置(看第2步)

这个教程比较粗糙,但是实测了几台本地机器没漏步骤。

这里的端口你自己设置哈, 我觉得8888还不错。

最后的使用

后续的调用, 重复 4 5 6 步骤,先CMD连接,再服务器启动jupyter,最后本地输入网址,操作服务器运行jupyter。 相对方便

第4步如果不知道服务器的ip,就在服务器端输入 hostname -I

相关推荐
IpdataCloud16 分钟前
IP数据云 识别和分析tor、proxy等各类型代理
运维·服务器
湖南罗泽南16 分钟前
Windows C++ TCP/IP 两台电脑上互相传输字符串数据
c++·windows·tcp/ip
五味香17 分钟前
Linux学习,ip 命令
linux·服务器·c语言·开发语言·git·学习·tcp/ip
小奥超人30 分钟前
PPT技巧:如何合并PPT文件?
windows·经验分享·microsoft·powerpoint·办公技巧
落落落sss42 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
我救我自己42 分钟前
UE5运行时创建slate窗口
java·服务器·ue5
MarcoAI1 小时前
github SSH连接(windows)
windows·ssh·github
大风吹PP凉2 小时前
38配置管理工具(如Ansible、Puppet、Chef)
linux·运维·服务器·ansible·puppet
康熙38bdc2 小时前
Linux 进程间通信——共享内存
linux·运维·服务器
刘艳兵的学习博客2 小时前
刘艳兵-DBA033-如下那种应用场景符合Oracle ROWID存储规则?
服务器·数据库·oracle·面试·刘艳兵