Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)

最近要开始学习机器学习的相关内容,需要使用实验室的服务器来进行程序的调试,因此学习了服务器的一些使用方法。实验室服务器用的是ubuntu系统,我的电脑操作系统是macOS 10.14.2

内网穿透

一开始的时候导师告诉我服务器只能使用局域网进行连接,这意味着每次都要去实验室里连上局域网才能进行代码的调试,所以尝试了下用内网穿透的方法,这样即可实现外网访问,不管在哪儿都可以进行连接。windows系统下可以使用xshell的隧道功能,这里需要知道服务器所在公网的ip地址,教程也有不少。但Mac上没有xshell,需要借助一些专门进行内网穿透的工具,我选择了natapp,一个月是9元,不算很贵,就先用着了。
使用方法很简单,首先我们要在服务器端安装natapp,大部分的64位系统是兼容32位的natapp的。因此直接下载32位的就行。Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第1张图片

选择购买vip_1型隧道,第一次的话可以用免费隧道试试看,免费隧道缺点在于ip地址是随机分配的,且不定时强制更换,不是特别方便。
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第2张图片
然后选择 隧道协议:TCP,远程端口自己选一个喜爱的数字就行,前提是没被别人注册掉。
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第3张图片
购买完成后在我的隧道里就可以看到刚刚购买的隧道了,后面需要用到的是authtoken,可以直接在网页上复制。
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第4张图片
接下来就是运行natapp了。这里假设我们将下载的natapp放入的目录是/usr/local/natapp/ 。我们进入到这个目录,并运行,粘贴上我们刚刚复制的authtoken。

cd /usr/local/natapp
./natapp -authtoken=xxxxx

看到Online就代表运行成功了:
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第5张图片
Forwarding后面跟着的第一串(也就是涂掉那个)就是用于连接的ip地址和端口号。
当然,在这个情况下,我们把这个终端关掉后这个隧道就关闭了,因此我们需要在后台运行这个程序:

nohup ./natapp -authtoken=xxxx -log=stdout &

这样关掉终端后natapp也还是在运行,可以放心进行连接了。
如果需要关掉的话,使用以下语句即可:
(xxxxx为红圈中的数字)

ps -ef|grep natapp
kill -9 xxxxx

接下来在自己的电脑中打开终端用ssh连接就行。

ssh -p 端口号 用户名@ip地址

这样就实现了外网访问服务器。

jupyter notebook远程连接

安装anaconda

首先我们要有anaconda
下载:

sudo wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.0.1-Linux-x86_64.sh

安装:

sudo bash Anaconda3-5.0.1-Linux-x86_64.sh

安装过程中按着提示来,按回车或者输入yes。接下来就是等待安装完成。

conda list

测试下安装是否完成,若出现问题则继续进行以下步骤:

sudo vim /etc/environment

打开环境变量进行编辑,按a进入编辑模式,在末尾加入anaconda的安装目录

:/home/你的用户名/anaconda3/bin

然后按esc,输入 :wq 进行保存并退出,随后激活环境变量

source /etc/environment

这样就完成了anaconda的安装。

配置jupyter notebook

先用anaconda创建一个jupyter notebook运行的虚拟环境,便于进行各种包、库的版本管理

conda create -n my_env python=3

my_env是创建的虚拟环境名称,接下来激活它

source activate my_env

安装jupyter notebook:

conda install jupyter notebook

生成jupyter notebook的配置文件:

jupyter notebook --generate-config

打开配置文件:

vim /home/ubuntu/.jupyter/jupyter_notebook_config.py

Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第6张图片

在文件中找到以下两行并进行修改

c.NotebookApp.ip = ‘*’
c.NotebookApp.open_browser = False

修改完以后退出,这样就完成了配置。我们在终端中运行jupyter notebook

jupyter notebook

可以看到以下界面,说明运行成功!图中最下面的token需要复制下来,过会儿在远程访问的时候需要输入。
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第7张图片
接下来重新打开一个终端,输入:

ssh -p 你的端口 用户名@你的ip地址 -N -L localhost:8889:localhost:8888

这句话可以把服务器端的localhost:8888 映射成本地的8889端口,这样就可以通过在本地浏览器中打开http://localhost:8889 来访问服务器端的jupyter notebook了。打开后需要输入token,粘贴刚刚复制的结果,连接成功!

Pycharm远程连接

在Pycharm的professional版本中我们可以远程连接服务器,将代码及文件一键上传至服务器并运行。基本可以实现在本地用Pycharm进行代码调试的功能,也非常方便。这个功能在community版本中并不存在,因此只能下载professional版本,价格较贵,不过可以使用edu邮箱账号申请免费使用,直接去官网申请即可,比较简单。

Interpreter

首先我们新建一个项目,并新建一个.py文件,用于测试。
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第8张图片

点击电脑左上角的菜单栏 Pycharm->Preferences
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第9张图片
依次点开Project->Project Interpreter,点击右边设置按键-> add->SSH interpreter。会出现如下界面。输入ip地址、端口、用户名点击Next。这时候需要我们输入服务器用户的密码,输入就行,点击Next
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第10张图片
然后就会进入下面这个界面,我们需要选择Interpreter的路径,自己找一下。我的是在anaconda3/bin下面找到的,选择自己需要的python版本。你也可以事先在服务器端创建一个虚拟环境,在虚拟环境的目录中找到Interpreter。点击Finish
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第11张图片
我们回到Preference界面,依次点开Build,Execution, Deployment->Deployment->选择刚刚创建的连接->Mappings->设置Deployment path。这里Deployment path就是你在服务器端要存放代码文件的目录路径,之后上传文件的时候就会自动上传到这个目录下。
Mac连接远程服务器学习(jupyter notebook、pycharm远程调试)_第12张图片
到这一步时我们基本就完成了对于Pycharm远程连接的配置。回到主界面,右击文件或文件夹,选择Deployment->upload to xxx 就可以把文件上传至服务器端,然后运行代码,进行远程调试。

以上就是我初学服务器使用时学习到的东西,内容可能有不完善的地方,后面会根据学习的深入进行修正。

你可能感兴趣的:(学习笔记,远程服务器)