Linux安装Jupyter,开放外网访问,并后台启动教程

1、前言

笔者上篇介绍内网与外网,内网穿透,即如何实现外网如何访问内网的服务器。我们开发同学经常用到的场景在内网的开发环境,可以在本地/自己的笔记本上进行开发。那如何操作呢,以j安装jupyter为例,笔者将会详细介绍安装jupyter、配置Jupyter以允许外网访问、设置默认工作目录等等。

2、安装Jupyter

以linux ubuntu为例,可以提前在环境中下载minconda3/anaconda3。

  • 更新软件包索引
    sudo apt update
    
  • 安装Python和pip(若有python环境,可以跳过)
    sudo apt install python3-dev python3-pip python3-venv
    
  • 安装Jupyter
    pip3 install jupyter
    

3、配置Jupyter以允许外网访问

  • 生成配置文件

    jupyter notebook --generate-config
    

    配置文件通常会生成在 ~/.jupyter/jupyter_notebook_config.py

  • 修改配置文件
    打开配置文件 ~/.jupyter/jupyter_notebook_config.py,进行以下修改:

    cd ~/.jupyter/  # 到生成配置文件下
    vi jupyter_notebook_config.py # 打开配置文件
    

    在配置文件中添加以下代码:

    c.NotebookApp.ip = '0.0.0.0' # 设置Jupyter监听所有网络接口,允许外网访问
    c.NotebookApp.port = 8888 # 设置端口,默认为8888,可自定义
    c.NotebookApp.open_browser = False  # 禁止自动打开浏览器
    c.NotebookApp.notebook_dir = '/yourpath/workspace/' # 指定目录
    
  • 设置密码(可跳过)

    jupyter notebook password
    

    按提示输入并确认密码。

4、后台启动Jupyter

  1. 使用nohup命令后台启动
    nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
    
    这个命令会将Jupyter Notebook启动在后台,并将输出重定向到 jupyter.log 文件。

5、外网访问

  • 确保服务器的防火墙或安全组设置允许访问你设置的端口(如8888端口)。一定需要检查!一定需要检查!一定需要检查!
  • 在浏览器中输入 http://<服务器公网IP>:8888 访问Jupyter Notebook。

检查防火墙策略

在Linux系统中使用firewall-cmd命令来管理firewalld防火墙

以下显示的命令及其解释:

a. firewall-cmd --list-all

  • 这个命令用于显示当前firewalld防火墙的配置。输出显示了公共区域(public zone)的详细信息,包括:
    • target: default:默认策略是接受(accept)。
    • icmp-block-inversion: no:没有启用ICMP阻止反转。
    • interfaces: ens19f1np1 ens12f0np0 ens12f1np1 ens15np0 ens17np0:列出了属于公共区域的网络接口。
    • services: ssh dhcpv6-client:允许通过公共区域的服务,包括SSH和DHCPv6客户端。
    • 其他如ports, protocols, masquerade, forward-ports, source-ports, icmp-blocks, rich rules等均未配置或为空。

b. firewall-cmd --zone=public --list-ports

  • 用于列出公共区域当前开放的端口。若没有显示输出结果,可能是因为之前没有开放任何端口。所以要执行接下来的步骤。

c. firewall-cmd --zone=public --add-port=8888/tcp --permanent
-将TCP端口8888永久添加到公共区域的防火墙规则中。--permanent表示这个规则在防火墙重启后仍然有效。命令执行成功,输出显示success

d. firewall-cmd --reload

  • 重载防火墙规则,若不执行,新添加的规则就不会生效
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容