【內網穿透】如何實現在外web瀏覽器遠程訪問jupyter notebook服務器

文章目錄

  • 前言
  • 1. Python環境安裝
  • 2. Jupyter 安裝
  • 3. 啟動Jupyter Notebook
  • 4. 遠程訪問
    • 4.1 安裝配置cpolar內網穿透
    • 4.2 創建隧道映射本地端口
  • 5. 固定公網地址

前言

Jupyter Notebook,它是一個交互式的數據科學和計算環境,支持多種編程語言,如Python、R、Julia等。它在數據科學、機器學習、深度學習、教育和文檔編寫等領域都有很廣泛的應用。

重要的是,Jupyter Notebook可以在Web瀏覽器中使用,所以我們可以在服務器端開啟服務,在外通過網頁遠程訪問運行代碼進行數據分析,擁有一個可以隨時隨地使用的科學計算環境,而無需在本地安裝配置Python環境。

1. Python環境安裝

在windows安裝python環境

https://www.python.org/downloads/windows/

image-20230223134015977

2. Jupyter 安裝

打開cmd命令行,輸入:

pip install jupyter

image-20230223154418341

3. 啟動Jupyter Notebook

Jupyter Notebook是一個開源的web應用程序,可以使用它來創建和共享包含實時代碼、方程、可視化和文本的文檔。同時也是IPython項目的一個派生項目,IPython項目本身曾經有一個IPython Notebook項目。后來從中拆分出去,叫做Jupyter Notebook。

啟動Jupyter Notebook

jupyter notebook

image-20230223155413053

啟動后會自動跳轉到瀏覽器打開界面,如沒有跳轉,輸入窗口出現的ip地址即可

image-20230223155527691

4. 遠程訪問

這里我們使用cpolar來進行內網穿透,支持http/https/tcp協議,不限制流量,無需公網IP,也不用設置路由器,使用簡單。

4.1 安裝配置cpolar內網穿透

cpolar官網:https://www.cpolar.com/

訪問cpolar官網,注冊一個賬號,然后下載并安裝客戶端,具體安裝教程可以參考官網文檔教程。

  • windows系統:在官網下載安裝包后,雙擊安裝包一路默認安裝即可。
  • linux系統:支持一鍵自動安裝腳本,詳細請參考官網文檔——入門指南

20230130105715

4.2 創建隧道映射本地端口

cpolar安裝成功后,在瀏覽器上訪問本地9200端口【http://localhost:9200】,使用cpolar賬號登錄。

20230130105810

點擊左側儀表盤的隧道管理——創建隧道,創建一個8888端口 http隧道,因為jupyter notebook默認是8888端口

  • 隧道名稱:可自定義命名,注意不要與已有的隧道名稱重復
  • 協議:選擇http
  • 本地地址:8888
  • 域名類型:免費選擇隨機域名
  • 地區:選擇China vip

點擊創建

image-20230223162138325

隧道創建成功后,點擊左側的狀態——在線隧道列表,查看所生成的公網地址,然后復制地址

image-20230223162622583

打開瀏覽器器,我們使用上面公網地址進行連接,會出現以下問題,這個問題是jupyter notebook限制ip訪問

image-20230223164122217

解決方法:

先關閉cmd運行窗口,打開一個新的窗口,執行以下命令,生成一個配置文件,注意記住配置文件路徑

jupyter notebook --generate-config

image-20230223165229828

設置訪問密碼

jupyter notebook password

image-20230223171005798

進入上面的json文件路徑,打開jupyter_notebook_config.json配置文件,復制密文

image-20230223171135988

然后打開上面jupyter_notebook_config.py配置文件,添加以下參數,添加后保存

c.NotebookApp.ip='*' #允許訪問的IP地址,設置為*代表允許任何客戶端訪問
c.NotebookApp.password = u'argon2:$argon2id$v=19$m=10240,t=10,p=8$QcZlyMBu9icwhDDiUl+lZw$y4EP3WI4gZjc'#剛才生成密碼時上面復制的密文
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一個端口, 訪問時使用該端口
c.NotebookApp.allow_remote_access = True

image-20230223172907811

然后cmd再次啟動

image-20230223173219974

打開瀏覽器器,我們再次使用上面公網地址進行連接,出現密碼,輸入上面設置的密碼登錄即可

image-20230223173324383

5. 固定公網地址

由于以上使用cpolar所創建的隧道使用的是隨機公網地址,24小時內會隨機變化,不利于長期遠程訪問。因此我們可以為其配置二級子域名,該地址為固定地址,不會隨機變化【ps:cpolar.cn已備案】

注意需要將cpolar套餐升級至基礎套餐或以上,且每個套餐對應的帶寬不一樣。【cpolar.cn已備案】

保留一個二級子域名

登錄cpolar官網,點擊左側的預留,選擇保留二級子域名,設置一個二級子域名名稱,點擊保留,保留成功后復制保留的二級子域名名稱

image-20230223173929959

保留成功后復制保留的二級子域名地址

image-20230223174355899

訪問 http://127.0.0.1:9200/,登錄cpolar web UI管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到所要配置的8888隧道,點擊右側的編輯

image-20230223174657488

修改隧道信息,將保留成功的二級子域名配置到隧道中

  • 域名類型:選擇二級子域名
  • Sub Domain:填寫保留成功的二級子域名

點擊更新

image-20230223174932054

更新完成后,打開在線隧道列表,此時可以看到公網地址已經發生變化,地址名稱也變成了保留過的二級子域名名稱,將其復制下來

image-20230223175119849

然后使用固定http地址打開瀏覽器訪問,登錄成功,訪問成功

image-20230223175542675

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40436.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

信也科技一面涼經

1.在項目經歷里挑一個詳細介紹一下 項目的應用場景 2.項目里用到多線程是怎么用的?回答:線程池 用通過 ThreadPoolExecutor 構造函數的方式創建的線程池 3.線程池有哪些重要參數?回答:核心線程數、最大線程數、阻塞隊列類型、…

【愛書不愛輸的程序猿】公網訪問本地搭建的WEB服務器之詳細教程

歡迎來到愛書不愛輸的程序猿的博客, 本博客致力于知識分享,與更多的人進行學習交流 本地電腦搭建Web服務器并用cpolar發布至公網訪問 前言1. 首先將PHPStudy、WordPress、cpolar下載到電腦2. 安裝PHPStudy3. 安裝cpolar,進入Web-UI界面4.安裝wordpress5.…

KU Leuven TU Berlin 推出“RobBERT”,一款荷蘭索塔 BERT

荷蘭語是大約24萬人的第一語言,也是近5萬人的第二語言,是繼英語和德語之后第三大日耳曼語言。來自比利時魯汶大學和柏林工業大學的一組研究人員最近推出了基于荷蘭RoBERTa的語言模型RobBERT。 谷歌的BERT(來自Transformers的B idirectional …

C語言 常用工具型API --------system()

函數名: system() 用 法: int system(char *command); 原理: 創建一個子進程去加載一個新程序執行,而Linux命令基本都是一個單獨的進程實現的,所以你所掌握的Linux命令越多,該函數…

AUTOSAR規范與ECU軟件開發(實踐篇)4.2 基于Matlab/Simulink的軟件組件開發

目錄 前言 1 、Matlab/Simulink與AUTOSAR基本概念的對應關系 2 、軟件組件內部行為建模方法

由淺入深學習Tapable

文章目錄 由淺入深學習TapableTapable是什么Tapable的Hook分類同步和異步的 使用Sync*同步類型鉤子基本使用bailLoopWaterfall Async*異步類型鉤子ParallelSeries 由淺入深學習Tapable webpack有兩個非常重要的類:Compiler和Compilation。他們通過注入插件的方式&a…

CentOS系統環境搭建(一)——Centos7更新

Centos7更新 更新 yum(包括centos內核) yum update執行后,系統將更新到centos 7.9。 從這一篇文章開始開始,我將開始在centos系統環境搭建🔗https://blog.csdn.net/weixin_43982359/category_12411496.html中開始對C…

【數據分析入門】Numpy進階

目錄 一、數據重塑1.1 透視1.2 透視表1.3 堆棧/反堆棧1.3 融合 二、迭代三、高級索引3.1 基礎選擇3.2 通過isin選擇3.3 通過Where選擇3.4 通過Query選擇3.5 設置/取消索引3.6 重置索引3.6.1 前向填充3.6.2 后向填充 3.7 多重索引 四、重復數據五、數據分組5.1 聚合5.2 轉換 六、…

回溯算法詳解

目錄 回溯算法詳解 回溯VS遞歸 回溯算法的實現過程 n個結點構造多本節要討論的是當給定 n(n>0)個結點時,可以構建多少種形態不同的樹。 回溯算法詳解 回溯算法,又稱為“試探法”。解決問題時,每進行一步&#…

主成分分析Python代碼

對于主成分分析詳細的介紹:主成分分析(PCA)原理詳解https://blog.csdn.net/zhongkelee/article/details/44064401 import numpy as np import pandas as pd標準PCA算法 def standeredPCA(data,N): #data:…

【golang】鏈表(List)

List實現了一個雙向鏈表,而Element則代表了鏈表中元素的結構。 可以把自己生成的Element類型值傳給鏈表嗎? 首先來看List的四種方法。 MoveBefore方法和MoveAfter方法,它們分別用于把給定的元素移動到另一個元素的前面和后面。 MoveToFro…

十種排序算法(附動圖)

排序算法 一、基本介紹 ? 排序算法比較基礎,但是設計到很多計算機科學的想法,如下: ? 1、比較和非比較的策略 ? 2、迭代和遞歸的實現 ? 3、分而治之思想 ? 4、最佳、最差、平均情況時間復雜度分析 ? 5、隨機算法 二、排序算法的分類 …

RabbitMq-1基礎概念

RabbitMq-----分布式中的一種通信手段 1. MQ的基本概念(message queue,消息隊列) mq:消息隊列,存儲消息的中間件 分布式系統通信的兩種方式:直接遠程調用,借助第三方完成間接通信 消息的發送方是生產者&#xff0c…

面試熱題(二叉樹的鋸齒形層次遍歷)

給你二叉樹的根節點 root ,返回其節點值的 鋸齒形層序遍歷 。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行) 輸入:root [3,9,20,null,null,15,7] 輸出:[[3…

MySQL數據庫-字符串函數詳解

前言 MySQL數據庫提供了多種不同類型的函數,用于處理字符串、日期、數值等數據類型,以及實現條件、聚合等操作,下面我們主要介紹字符串函數 CONCAT() 函數 CONCAT() 可用于將多個字符串連接在一起。 示例: SELECT CONCAT(Hell…

C++ STL stack queue

目錄 一.stack 介紹 二.stack 使用 三.stack 模擬實現 普通版本: 適配器版本: 四.queue的介紹 五. queue使用 六.queue模擬實現 七.deque介紹 1.容器適配器 2.deque的簡單介紹 3.deque的缺陷 4.為什么選擇deque作為stack和queue的底層默認容…

System.Text.Encoding不同字符編碼之間進行轉換

System.Text.Encoding 是 C# 中用于處理字符編碼和字符串與字節之間轉換的類。它提供了各種靜態方法和屬性,用于在不同字符編碼之間進行轉換,以及將字符串轉換為字節數組或反之。 在處理多語言文本、文件、網絡通信以及其他字符數據的場景中&#xff0c…

Spring Boot 獲取前端參數

Spring Boot 獲取前端參數 在開發 Web 應用程序時,前端參數是非常重要的。Spring Boot 提供了多種方法來獲取前端參數,本文將介紹其中的一些常用方法。 1. 使用 RequestParam 注解 RequestParam 注解是 Spring MVC 提供的一種常用方式,用于…

C++ 函數

函數是一組一起執行一個任務的語句。每個 C 程序都至少有一個函數,即主函數 main() ,所有簡單的程序都可以定義其他額外的函數。 您可以把代碼劃分到不同的函數中。如何劃分代碼到不同的函數中是由您來決定的,但在邏輯上,劃分通常…

pycharm調整最大堆發揮最大

python程序運行時,怎么提高效率,設置pycharm最大堆過程如下; 一、進入設置pycharm最大堆; 二、進入設置pycharm最大堆; 如果8g設置為6g左右,占75%左右最佳