解决无法远程连接centos7服务器jupyter:一种基于mobaxterm建立端口映射的方式

1 篇文章 0 订阅
1 篇文章 0 订阅

解决无法远程连接centos7服务器jupyter:一种基于mobaxterm建立端口映射的方式

摘要

使用mobaxterm,即一款远程连接服务器的开源软件,进行本地电脑和服务器的端口映射。本文主要介绍了操作的步骤,并基于此解决了本地浏览器无法连接服务器jupyter的问题。

1 前言

由于经费紧缺,我的小笔记本(小新pro13, ryzen3550H, 2019版)难以承受大型软件的欺负,只能开开网页这样子,使用实验室的服务器(华为云服务器,centos7)进行大型任务处理如matlab,python(主要用jupyter,一款好用的python编写环境)成为了必要。

网上已经有比如如何在centos服务器安装anaconda, jupyter并进行配置的详细教程[1],[2]。尽管如此,我在这个过程中遇到诸多困难。大部分问题都能按照通用方法解决,最大的挑战来自配置好服务器以后,本地主机无法通过浏览器(edge)远程连接jupyter。为了解决这个问题,[3]的评论区中,有人提出了解决办法,第一种是关闭服务器防火墙,二是建立本地和服务器端口映射[4]。关闭服务器防火墙风险非常大,后果无法预计,我们尽量不使用此方式。而建立端口映射则非常安全,但[4]中没给出在mobaxterm下的方式。[5]中作者给出了详细的在mobaxterm下,建立本地和服务器之间的端口映射的方式。基于以上作者的研究,我提出了使用mobaxterm下建立端口映射以解决本地浏览器无法打开服务器jupyter的方案。

本文剩余部分的结构如下。

第二部分介绍了背景,包括我系统配置和遇到的问题描述。第三部分介绍了解决远程连接jupyter具体步骤。第四部分给出了提出的解决方案结果。最后是总结。本文参考了学术论文的风格,我还是小白,请大家多指正。

问题描述

服务器系统版本,使用以下命令查看。

cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

服务器CPU型号个数核数和线程数,使用以下命令分别查看。

#看型号
cat /proc/cpuinfo | grep name | sort | uniq
model name      : Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz
#看个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
16
#看核数
cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l
1
#总的线程数
cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l
16

首先在服务器成功启动了jupyter notebook,而且给出了登陆ip端口,这里是vm2:8888。正常流程是将vm2替换为服务器ip在本地浏览器输入,即可连接到jupyter。

jupyter notebook
#中间省略了部分提示信息
Jupyter Notebook 6.4.5 is running at:
http://vm2:8888/

本地用edge浏览器,输入“服务器ip:8888”经测试无法打开jupyter,经[4]中方法测试后发现是防火墙原因。因此关闭防火墙,问题解决,在服务器中输入命令如下,如果提示没有管理员权限可在命令前加sudo。

systemctl stop firewalld.service

但问题仍存在:防火墙关闭不是一个好的解决方法,因此希望采用端口映射来解决。

进行端口映射

首先,打开mobaxterm,连接上目标服务器,确保没有任务在进行(先退出jupyter),然后点击Tunneling,这里版本不同可能稍有差别。

image-20220113225348371

然后,弹出如下界面,点击新建SSH tunnel.

image-20220113225801259

接下来是关键步骤,在弹出的窗口中,先点击本地端口转发。然后输入本地端口号,这里可以是任意空闲的端口,如果不清楚可以设置为2333(我设置的端口),或查看电脑空闲端口后再设置。接下来是填写登陆服务器时的信息,包括ip地址,登陆用户名,SSH端口,这里要注意SSH端口,一般是22(我使用的),是使用SSH登陆时设置的。最后输入服务器名字和端口号,这里服务器名字写“localhost”即可,端口则是我们刚才启动jupyter服务时看到的“8888”。

image-20220113230141610

点击保存后,配置还差最后一步,点击启动。

image-20220113230743055

至此,我们就将服务器的“8888”端口映射到了本地主机的“2333”端口,这样访问本地的端口就会连接到服务器了。

结果

启动jupyter notebook。然后在本地浏览器输入“loacalhost:2333”,其中,端口号“2333”就是我们刚才设置的本地端口号。可以看到,已经可以成功连接到服务器的jupyter。

image-20220113231136202

总结

本文使用mobaxterm软件建立了本地主机和服务器的端口映射,操作比较简介易懂,并解决了无法连接服务器jupyter的问题。这个映射方案不局限于本文描述的问题,任何需要绕开防火墙的连接都可以使用,至于更具体的原理和其他应用,我将来有机会会再分析。

参考资料

[1] https://zhuanlan.zhihu.com/p/64930395

[2] https://blog.csdn.net/m0_55868614/article/details/120479535

[3] https://blog.csdn.net/cc1949/article/details/79095494

[4] https://mp.weixin.qq.com/s/bGY9gIGcTK8ZXU_rptGz6g

[5] https://blog.csdn.net/qq_40944311/article/details/121396856

.com/s/bGY9gIGcTK8ZXU_rptGz6g

[5] https://blog.csdn.net/qq_40944311/article/details/121396856

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值