之前只是会用,别人告诉我命令和大概怎么设置的,今天自己搭建才发现一知半解搞不定啊。
目的:远程通过ipython notebook调用服务器。
服务器是ubuntu16.04
本地机器win7
配置方案一:
msys2
配置方案二:
xshell
无论哪个方案,说白了,就是想远程使用服务器,当然最常用的就是ssh方式。因此都要首先把服务器的ssh功能开通,开通方式可以参考这里。
首先安装openssh
sudo apt-get install ssh openssh
而后,将端口开放,默认是22,改成你想用的,不常见的,这样比较安全。比如8889等。
sudo vim /etc/ssh/sshd_config
port=8889
然后保存退出。从新启动ssh.
sudo /etc/init.d/ssh restart
这样你的端口8889就开通了。
服务器终端输入:
ipython notebook --no-browser --port=8881
这是服务器上ipython notebook的port。此时服务器终端会有反馈,同时有token输出,这个也算是加密生成的序列密码吧。本地机器登录时要输入token作为密码才能登录的。
而后根据你在windows上安装msys2或者xshell
若是msys2,msys2的安装和openssh的安装。
pacman -S openssh / msys-openssh
上面是第一个openssh还是msys-openssh我忘记了,应该都可以,可以试试。
这样ssh就可以在msys2上用了。
在msys2上输入:
ssh -N -L localhost:8880:localhost:8881 -p 8889 user@remothost
会提示输入密码等,输入服务器密码就是了。
而后,在本地的网页地址输入
localhost:8880
就可以了。此时可能会提示要输入密码,把服务器上生成的token粘贴进来就可以了。
方案二,使用xshell。
首先要先配置 “连接”中的“用户身份验证”,此时输入服务器的IP地址和ssh端口(8889)(如果在开始设置SSH时,没有改端口号,使用默认的端口号22,这个地方应该不用设置的,默认就是22)。然后设置“ssh”中的“隧道”,此时,源主机设置为:localhost。倾听端口:8880.目标主机:localhost,目标端口为:8881.具体图形界面可以参考这里。上面的参考地址里,只有设置ssh中隧道的界面截图,没有前面的(大概人家使用的是默认端口22)。哈哈,因为我之前用的时候没弄服务器那边的设置,这次终于搞定了。唉,累死。再者,我使用的不是默认端口,所以要设置一下,如果你使用默认22端口,大概只要服务器开通ssh就可以了,我前面设置“连接”啥的只需要IP地址就可以了。8889这个就不用设置了。默认端口就可以了。
然后保存,连接,可以看到xshell界面已经进入服务器终端界面了。此时,在本地浏览器输入
localhost:8880
需要密码的话,把服务器的token输入,此时完成了本地机器通过ipython notebook调用服务器的配置。
为这个,还请教了一下原来的同事,估计我没问清楚,他可能默认我的端口是22.而我其实把端口改掉了。但是人家高手就是高手啊,把问题滤了一遍,感觉我思路清晰多了。