900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 使用域名访问远程jupyter_如何设置远程访问的Jupyter Notebook服务器-01(之预备知识

使用域名访问远程jupyter_如何设置远程访问的Jupyter Notebook服务器-01(之预备知识

时间:2023-11-28 02:07:16

相关推荐

使用域名访问远程jupyter_如何设置远程访问的Jupyter Notebook服务器-01(之预备知识

(这是一篇面向零基础读者的教程)

0.前言

毋容置疑,Jupyter Notebook是统计、数据分析和机器学习的利器,使用起来非常方便和高效。

在上一讲中,我们讨论了如何安装和使用Jupyter Notebook。但有个细节需要注意,那就是这个Jupyter都是运行在本地(localhost)的,如图1所示。图1 在本地运行的Jupyter

在本地机器上,可以通过在浏览器地址栏输入 http://localhost:8888,或http://127.0.0.1:8888,来获取Jupyter Notebook提供的服务,所见即所得,方便且酷。

在图1中,地址栏中的“localhost”是本地主机的域名,其对应的IP地址就是“127.0.0.1”,冒号(:)后面的8888为端口号。对这个端口号的理解还是挺重要的,后面我们还会提及这个概念。

或许,你会遭遇这样的应用场景。假设你是某高校的老师或某公司的培训师,你可能希望自己搭建一个Jupyter Notebook服务器,比如说在阿里或亚马逊的云平台租用了一台性能较好的服务器,以获得较高计算能力(比如GPU)或大内存。

然后,在这样的公共云平台配置了各种环境,如安装了Python、TensorFlow、Keras等各种软件或计算框架。然后,你想让你的受众(授权用户),可以远程访问并共享这个开发环境,而不想再让可能『相隔万里』的他们,每个人都独立配置一套和你一样的开发环境,因为这可能会浪费大量精力和物力。

那么,处于这么一个应用场景的你,可能就需要这个系列的知识:如何搭建一个好用的Jupyter Notebook服务器。

在搭建Jupyter Notebook服务器之前,可能还可需要储备部分基础知识,这样才能让你『知其然,还知其所以然』。

那么第一个需要你掌握的知识,就是什么是端口号。

1 预备知识:什么是端口号?

由于配置Jupyter服务器需要用到“端口号”这个概念,而不少初学者对这个概念并不了然,下面我们简单介绍一下这个概念。(对这部分知识熟悉的读者,可以跳过本小节)

我们知道,所有混迹于互联网江湖的机器,都必须有唯一的“身份证号码”,那就是IP地址。而所谓的域名(如等),就好比我们是我们的“姓名”,他们不过是IP地址的一种外在的、便于记忆的映射而已,并不是必需的。

每个IP地址对应的机器里,都会安装若干应用程序(如迅雷、Foxmail、Jupyter等),或提供各种服务(如TCP/IP、UDP、SSH等)。我们知道,在本质上,服务的载体还是程序,不过是通常运行在后台罢了。

在网络中,机器之间免不了要打交道,也就是相互通信。倘若不能,孤立的节点不能成为网络节点的一员,那它的作用就大打折扣。在现代社会,一台『自娱自乐』的计算机,基本上毫无价值。

从表面上看,我们是在不同机器之间进行通信。而实际上,具体来说,是机器间不同应用程序或服务在相互通信。于是,问题来了,机器中安装这么多程序或提供这么服务,机器彼此之间是如何来区分这些程序或服务呢?

这就用到前面提到的端口号。

如果我们把IP理解为机器的“身份证号码”的话,那么端口号(port number),就是机器中某个应用程序或服务(application/service)的“二级身份证号”。

这就好比,如果邮差想把信件发送给某个大学的某位学生,如果仅仅提供这个大学的地址(如:AAA大学)是不够的。虽然,理论上,邮差自然可以把这个大学的所有大学生都轮询一遍,找到这位学生是没有问题,但大学生人太多,这种方法就太低效了。那能不能有更加便捷的方法,快速找到这位学生呢?

办法是有的。那就是给学生分配一个信箱,其号码比如说为8888。于是,邮差每次送信时,直接把信件送到“AAA大学:8888”对应的信箱就好,这个学生可以“适时(也就是说,不要求一定同步)”来取这个信就好。

当然,并不是每个学生都会有自己的信箱号的。

同样,计算机中也不是每个程序或服务都需要一个端口号。通常,专注于为本地服务,并不需要外界提供协助的程序,如Word,Excel,Vim等应用,就不必给他们分配一个端口号,而提供网络服务的程序,通常分配有一个端口号。图2 端口号示意图

通常来说,一些流行的网络服务或应用,早都有了“约定俗成”的端口号。

例如,HTTP服务的端口号为80。访问网站时,虽然我们并没有在URL地址上显式添加这个端口,但协议中已经隐含了默认的端口80,如图2所示。

还例如,HTTPS服务默认的端口号为443/TCP, 443/UDP,Telnet端口号为23。SSH(安全登录)、SCP(文件传输)默认端口号为22/TCP。FTP端口号为21,SMTP端口号为25。数据库SQL Server默认端口为1433,MySQL默认端口3306,TOMCAT,默认端口号为8080,诸如此类。

2.设置端口号的原则

端口号的设置的规则通常是这样的:其他应用程序(特别是主流的协议)已经占用的端口号,我们就不要『鸠占鹊巢』了,以免发生冲突。这就好比,你用了别人的信箱号,难免就会把别人的信送到你的信箱之中。

有时候,我们并知道其他应用程序开启了什么端口号,为了避免冲突,『后起之秀』的应用程序(如Jupyter)通常采用比较不常见的4位长度编号,如图1所示的『8888』。当然,我们也可以利用『9999』之类的4位编号,只要尽量不和其他程序冲突就好。

有了端口号,外部机器就能『有的放矢』的精准地找到通信载体(各类通信软件或服务协议)。这为网络通信打下了坚实基础。

掌握了这个预备知识,为搭建Jupyter服务器,迈进了坚实一步。

接下来,我们将讨论一下,如何远程登录服务器,并如何在一台Linux裸机上创建Jupyter服务器专用的账号。

使用域名访问远程jupyter_如何设置远程访问的Jupyter Notebook服务器-01(之预备知识:什么是端口号?)...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。