文章目录
以下仅为记录个人摸索的过程,如有问题欢迎指出。
一、个人服务器配置
以下操作需在个人服务器中完成,首先确保安装了jupyter等相关环境,运行jupyter lab看是否需安装nodejs等
1.生成配置文件
jupyter lab --generate-config
这将会生成一个 jupyter_lab_config.py 的配置文件到 ./jupyter 文件夹下,后续需进行编辑。
2.设置远程登陆jupyter lab的密码
jupyter lab password
Enter password: **** # 以后通过这个密码才可访问
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_server_config.json
3.修改第1步中的配置文件
使用vim编辑器或找到对应文件夹使用编辑器修改:
vim ~/.jupyter/jupyter_notebook_config.py
找到如下几行,取消注释,并编辑需要修改的变量:
c.ServerApp.allow_remote_access = True # 允许使用远程访问
c.ServerApp.allow_root = True # 允许使用root
c.ServerApp.ip = '*' # 监听所有ip
c.ServerApp.open_browser = False # 服务器端默认启动jupyter时不自动打开浏览器
c.ServerApp.port = 8899 # 服务器端口号,可自行设置
# 如果服务器是windows,jupyter lab可能遇到打不开终端的情况,进行如下配置
# 需将后面的地址改为自己需要的powershell路径
c.ServerApp.terminado_settings = {'shell_command':['C:\Windows\System32\WindowsPowerShell\\v1.0\powershell.exe']}
至此,个人服务器端配置完成。
二、使用内网访问【服务器与客户端在同一局域网】
使用ifconfig
或ipconfig
查看服务器在内网终端ip地址,例如:192.168.8.10。
打开客户端电脑浏览器,直接输入192.168.8.10:8899,即[ip]:[上面设置的端口号]
,便可打开远程jupyter界面:
输入前面设置的密码即可登陆。
三、使用外网访问【服务器与客户端不在同一局域网】
大部分情况下,服务器与客户端是没有公网ip的,如果二者不在一个局域网下,就不能直接访问。我首先试了对服务器所在路由进行端口映射,但是仍然不能访问,后来发现路由的WAN口ip也使运营商分配的私有局域ip。因此如果使用ipv4地址,需要用到内网穿透技术。
以下内容在服务器端执行
内网穿透工具有很多,我使用的是ngrok,官网:https://ngrok.com/,首先需要注册账号:
注册好登陆如下,选择自己的服务器平台:
按照流程安装即可:
这里我选择静态域名,注意端口号要改为之前服务器jupyter lab配置的端口号,我配置的是8899。
按照上述步骤执行完后,终端显示如下:
将红框中的域名输入到客户端浏览器(后面无需添加:8899
),即可通过内网穿透来访问服务器。