xshell使用ssh方式登錄遠程服務器訪問(localhost或者127.0.0.1)http:8080的網頁,以聯邦學習的fateboard爲例

引言:遠程連接服務器時,需要使用localhost:8080端口,比如使用聯邦學習的fateboard,深度學習的jupyter notebook和tensorboard等。因爲服務器一般是linux操作系統,沒有圖形來顯示,因此應當使用本地(一般爲windows操作系統)的瀏覽器來訪問遠程的8080端口。在這個過程中遇到不少坑以此記錄。

目錄

一. 選擇合適的雲服務器

二. 開放服務器的8080端口

三. xhsell連接


一. 選擇合適的雲服務器

  1. 想要連接雲服務器的http服務的8080端口,首先服務器要開放這個端口。上服務器的實例控制檯,可以發現一般都會開啓TCP的22,21,20,443等常用端口,以實現文件傳輸、連接請求等服務。然而一般並沒有開啓http的8080端口,要我們手動登錄服務器官網登錄個人控制檯,在實例中設置。一般租的服務器默認的關閉防火牆的(如下圖),防火牆功能由控制檯裏面的安全組控制,通過安全組設置自己要開放的端口。
  2. 爲什麼放棄了騰訊雲服務器?我發現騰訊雲服務器改了端口似乎沒用,後來上網查一下發現大家也是這樣,首先是去騰訊的“雲+社區”提問,發現有人說往安全組添加規則即可,下面回覆說沒用,點贊還較多。

 

 

      除此以外還有一篇博客總結了他在使用騰訊雲服務器時遇到的坑:https://www.cnblogs.com/zeussbook/p/10191051.html,博主表示使用騰訊服務器的安全組設置8080端口時的問題(和我遇到的好像。。。),並說使用說明太亂了(同感)。我感到有一個大坑,索性換了服務器,從而用阿里雲服務器。

      3.使用阿里服務器ECS安全組說明很清楚:https://help.aliyun.com/document_detail/25471.html?spm=a2c4g.11186623.6.853.7e99201aX9UESa。尤其下面這句話非常重要:

         之前在騰訊雲服務器沒看到這個,而且上述博客也說明了騰訊雲服務器設置後還過一會。所以我訪問localhost:8080老是失敗(他是使用Tomcat)。

二. 開放服務器的8080端口

          按照https://help.aliyun.com/document_detail/25471.html?spm=a2c4g.11186623.6.853. 7e99201aX9UESa更新安全組規則即可。

三. xhsell連接

        

  1. 有些博主使用在本地xshell界面中輸入ssh username@address_of_remote -L 127.0.0.1:1234:127.0.0.1:8888來綁定服務器端口(https://www.dazhuanlan.com/2020/01/06/5e1290bee6149/)。實際上,上述方式就是在建立隧道,即把訪問本地的端口變成訪問服務器上的端口。而我們就是想要在本地瀏覽器來訪問服務器的8080端口來調試(下面以使用fateboard爲例子)
  2. 使用xshell隧道功能,右鍵自己的會話->屬性->連接->ssh->隧道,添加規則:

          源主機指本地機器,目標主機指雲服務器,含義就是如果在本地瀏覽器輸入localhost:8080,就會訪問到服務器的localhost:8080。其中,本地的端口值可以自行設置其他可用值(如1234)。點擊連接,登陸上服務器。點擊查看->隧道窗格,下面就可以出現渠道和轉移規則(這裏查了好久,看其他教程都是直接說,原本都不知道在這裏,我還以爲我的版本不對)

         狀態顯示打開,說明連接成功

     3. 服務器那邊端口8080開放了,本地xshell連接後,就可以使用本地瀏覽器訪問遠程的localhost:8080了。不同的的board的設置還有有些不同,tensrboard需要在服務器上執行一條指令。以下主要講解fateboard(以單機版本爲例子),按官網執行:https://github.com/FederatedAI/FATE/tree/master/standalone-deploy

        

#Get code
FATE $ wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/docker_standalone-fate-1.3.0.tar.gz
FATE $tar -xvf docker_standalone-fate-1.3.0.tar.gz

#Execute the command
FATE $ cd docker_standalone-fate-1.3.0
FATE $ bash install_standalone_docker.sh

#Validation results
FATE $ CONTAINER_ID=`docker ps -aqf "name=fate_python"`
FATE $ docker exec -t -i ${CONTAINER_ID} bash

    執行到docker exec -t -i${CONTAINER_ID} bash後,目錄變爲:

   如果執行測試程序:bash ./federatedml/test/run_test.s 此時在瀏覽器執行localhost:8080只會出現fateboard面板,沒有running的樣例:

    實際上,測試樣例沒有使用fateboard。按照官網的例子,應該在fate#下進入examples/ federatedml-1.x-examples/,執行python quick_run.py。此時進入fateboard,查看成功:

          點擊一個即可查看運行進度:

          注意:偶爾服務器繁忙時也會登不上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章