云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器

这篇具有很好参考价值的文章主要介绍了云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本文利用云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器

写这篇博客的初衷是:台式机上有GPU,想可以远程访问台式机的jupyter服务器,从而可以在笔记本上远程使用台式机的GPU来做深度学习

白嫖阿里云云服务器 (高校学生才能领取)

阿里云云工开物计划可以领取300元优惠券,经过实测,可以免费购买轻量应用服务器中的新加坡服务器1年,如下图所示,这里我选择系统镜像为 Ubuntu20.04

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

创建新用户(可跳过)

参考链接 ubuntu下添加新用户

启动云服务器,默认使用admin用户,这里新创建一个用户

sudo useradd -r -m -s /bin/bash your_user_name

其中参数的意义如下:
-r:建立系统账号
-m:自动建立用户的登入目录
-s:指定用户登入后所使用的shell

在 Ubuntu20.04 中,不会在创建用户的时候自动提示设置密码,需要使用以下命令来设置

sudo passwd your_user_name

输入 ls /home/ 查看用户是否成功创建,输入 su your_user_name 即可切换用户

云服务器端设置

配置frp服务器

  1. 下载frp并解压,由于云服务器操作系统为 ubuntu20.04,架构为 x86_64,因此选择 frp_0.50.0_linux_amd64
wget https://github.com/fatedier/frp/releases/download/v0.50.0/frp_0.50.0_linux_amd64.tar.gz
tar zxvf frp_0.50.0_linux_amd64.tar.gz
cd frp_0.50.0_linux_amd64
  1. 云服务器端只要关注两个文件,即 frpsfrps.ini,我们可以通过修改 frps.ini 来配置功能
vim frps.ini

将该文件内容按照下面的格式修改

[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_user = admin
vhost_http_port = 10080
vhost_https_port = 10443
  1. 端口均可使用默认值(也可以自定义),token、dashboard_user 和 dashboard_user 项请自行设置。
  2. bind_port:表示用于客户端和服务器端连接的端口,这个端口号之后在配置客户端的时候要用到
  3. dashboard_port:是服务器端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中 x.x.x.x 为云服务器的IP)查看frp服务的运行信息
  4. token:是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到
  5. dashboard_user 和 dashboard_pwd 表示打开仪表板页面登录的用户名和密码,自行设置即可
  6. vhost_http_port 和 vhost_https_port 用于反向代理HTTP主机时使用,本文不涉及,因而照抄或者删除这两条均可
  1. 接下来可以运行 frps
./frps -c frps.ini
  1. 一般来说,服务器默认设有防火墙,需要在防火墙中开放端口 bind_portdashboard_port ,这里为 70007500,如下所示

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

  1. 此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

设置frps开机自启动

Ctrl+C 退出 frps,接下来按照下列步骤将 frps 设置为开机自启动

  1. 修改 rc-local.service 文件

    sudo vim /lib/systemd/system/rc-local.service
    

    在文件的最后面添加 [Install] 段的内容,如下所示

    [Unit]
    Description=/etc/rc.local Compatibility
    Documentation=man:systemd-rc-local-generator(8)
    ConditionFileIsExecutable=/etc/rc.local
    After=network.target
     
    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    RemainAfterExit=yes
    GuessMainPID=no
     
    #这一段原文件没有,需要自己添加
    [Install]
    WantedBy=multi-user.target
    Alias=rc-local.service
    
  2. 创建 /etc/rc.local,Ubuntu 20.04 默认不存在 /etc/rc.local,需要自己创建

    sudo vim /etc/rc.local
    

    向该文件中添加要执行的命令,如下所示

    #!/bin/bash
    
    # 将你需要执行的命令写在这里,禁止写入死循环命令
    frps的绝对路径 -c frps.ini的绝对路径
    
    exit 0
    
  3. 修改 /etc/rc.local 权限

    sudo chmod 777 /etc/rc.local
    
  4. 启动 rc-local.service

    sudo systemctl enable rc-local.service 
    
  5. 检查服务状态:使用 sudo systemctl status rc-local.service 查看 rc-local 服务的状态, 显示 loaded 和 enabled 即可

  6. 接下来重启云服务器,访问 x.x.x.x:7500 查看 frps 是否正常运行

客户端配置

因为我需要可以远程访问台式机上的 jupyter,因此台式机就是这里说的客户端。由于台式机上安装了Windows 和 Ubuntu20.04 双系统,因此下面分别按照这两个系统进行示例

Windows

frpc配置

  1. 下载 frp_0.50.0_windows_amd64 并解压,客户端只要关注两个文件,即 frpcfrpc.ini,我们可以通过修改 frpc.ini 来配置功能,如下所示
[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678

[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7001

[jupyter]
type = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 7002

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7003

[common] 字段下的三项为服务端的设置

server_addr:为服务端IP地址,填入即可

server_port:为服务器端口,填入你设置的端口号即可,如果未改变就是7000

token:是你在服务器上设置的连接口令,原样填入即可

frp 实际使用时,会按照端口号进行对应的转发,原理如下所示

frpc.ini[smb][jupyter][ssh] 字段都是自己定义的规则,自定义端口的格式如下:

[xxx]:表示一个规则名称,自己定义,便于查询即可
type:表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册
local_port:是本地应用的端口号,按照实际应用工作在本机的端口号填写即可
remote_port:是该条规则在服务端开放的端口号,自己填写并记录即可

SMB,Windows文件共享所使用的协议,默认端口号445,协议TCP,因此规则 [smb] 可实现远程文件访问

jupyter 默认工作在端口 8888,因此规则 [jupyter] 可以实现远程访问 jupyter 服务器

  1. 接下来需要在云服务器端配置防火墙,开放 700170027003 这三个端口

  2. 完成配置后,使用命令行运行 frpc.exe 即可,输出如下所示

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

设置frpc自启动

可以通过 Windows 的任务计划程序实现 frpc 开机自启动,具体可以搜索网上教程,关键的一步如下所示

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

SMB测试

确保电脑已经开启共享文件夹,有关教程自行搜索,在手机上安装软件 Solid Explorer (ES文件浏览器应该也可以)来远程访问电脑上的文件

Solid Explorer 中新建云连接,选择连接类型为 LAN/SMB,输入如下信息,远程主机名填云服务器的IP地址,端口填 7001(即上面配置的remote_port)

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

按照流程输入有关信息即可连接

SSH测试

Windows安装SSH可以参考教程:Windows 10 开启ssh服务

VScode上可以安装拓展 Remote - SSH 来远程连接,需要注意的是,输入的命令为 ssh YourUserName@YourServerIP -p 7003

jupyter测试

jupyter 服务器配置

默认情况下 jupyter 不支持密码登录,可以按照下面的步骤开启

  1. 打开 Anaconda Prompt,执行下面的命令来生成一个配置文件,注意记住配置文件路径
jupyter notebook --generate-config

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

  1. 接下来设置访问密码
jupyter notebook password

云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器,遇到的问题,杂文,服务器,jupyter,运维

  1. 进入上面的 json 文件路径,打开 jupyter_notebook_config.json 配置文件,复制 password 对应的密文

  2. 然后打开上面 jupyter_notebook_config.py 配置文件,添加以下参数后保存

c.NotebookApp.ip='*' #允许访问的IP地址,设置为*代表允许任何客户端访问
c.NotebookApp.password = u'你的密文'#刚才生成密码时上面复制的密文
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888 #可自行指定一个端口, 访问时使用该端口
c.NotebookApp.allow_remote_access = True
c.NotebookApp.notebook_dir = 'Your Work Dir'
  1. 接下来在 Anaconda Prompt 中输入 jupyter notebook 启动 jupyter,或者直接启动 jupyter 也可以

  2. 接下来在其他设备(如笔记本)上输入 x.x.x.x:7002(即云服务器IP地址和上面配置的remote_port),查看是否可以远程访问 jupyter

使用 JupyterLab

Jupyter Lab是Jupyter的一个拓展,它提供了更好的用户体验,例如可以同时在一个浏览器页面打开编辑多个Notebook,Ipython console和terminal终端,并且支持预览和编辑更多种类的文件,如代码文件,Markdown文档,json,yml,csv,各种格式的图片,vega文件(一种使用json定义图表的语言)和geojson(用json表示地理对象),还可以使用Jupyter Lab连接Google Drive等云存储服务,极大得提升了生产力。

  1. 用 conda 安装 JupyterLab

    conda install -cconda-forge jupyterlab
    
  2. 使用浏览器打开 your_jupyter_server/lab/workspaces/auto-a 即可

将 Anaconda 的虚拟环境设置为 jupyter 的 kernel
  1. 使用 Anaconda 创建环境并激活

    conda create -n env_1 python=3.7
    conda activate env_1
    
  2. env_1 环境下安装 ipykernel

    conda install -n env_1 ipykernel --update-deps --force-reinstall
    
  3. 将该环境写入到notebook的kernel中

    python -m ipykernel install --user --name env_1 --display-name "env_1"
    

可以通过下面的命令来查看 jupyter 存在的 kernel

jupyter kernelspec list

如果想删除 env_1 虚拟环境,可通过下面的命令

jupyter kernelspec remove env_1
VSCode

VSCode 在安装拓展 JupyterJupyter KeymapJupyter Notebook Renderers 后,打开 ipynb 文件后可以选择远程的 jupyter 服务器。

需要注意的是,此时代码运行的工作目录是远程 jupyter 服务器的工作目录,可以通过 !chdir 来查看。所有 ipynb 文件中读取或者保存的数据,都是相对远程 jupyter 服务器的工作目录而言的,而不是本机中 ipynb 文件的目录。

Ubuntu20.04

待续。。。文章来源地址https://www.toymoban.com/news/detail-764480.html

参考链接

  1. ubuntu下添加新用户
  2. 使用frp配置内网穿透保姆级教程
  3. 【内网穿透服务器】利用云服务器+FRP实现内网穿透并远程连接服务器_上云后如何解决内网连接问题
  4. frp
  5. 解决Permission denied (publickey)
  6. SSH简介及两种远程登录的方法
  7. JupyterLab最全详解

到了这里,关于云服务器+FRP实现内网穿透,可以远程访问本机的jupyter服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云服务器搭建FRP实现内网穿透-P2P

    在了解frp - p2p之前,请先了解阿里云服务器搭建FRP实现内网穿透-转发: 文章地址    frp(Fast Reverse Proxy)是一个开源的反向代理工具,它提供了多种功能,包括端口映射、流量转发和内网穿透等。在frp中,P2P(Peer-to-Peer)功能允许直接将数据从一个客户端传输到另一个客户

    2024年02月10日
    浏览(31)
  • 使用云服务器和Frp(快速反向代理)框架快速部署实现内网穿透

    现在有一台ubuntu云服务器,我想通过内网穿透将一台内网的主机当成云服务器来使用(包括但不限于ssh、http和https服务),比如我想在外地通过ssh远程连接到一台内网没有桌面的主机(可以是Ubuntu或者Windows,Windows配置类似),就可以使用frp内网穿透, 配置起来非常方便快捷

    2024年02月15日
    浏览(36)
  • 使用FRP(快速反向代理)实现内网穿透——以腾讯云服务器为例

    FRP,即快速反向代理技术(fast reverse proxy)。本文的FRP程序是基于github开源项目GitHub - fatedier/frp。当前,该程序可实现:“ 将位于 NAT 或防火墙后面的本地服务器暴露给互联网” 。它目前支持 TCP 和 UDP,以及 HTTP 和 HTTPS 协议,允许通过域名 / IP将请求转发到内部服务器

    2023年04月14日
    浏览(59)
  • 群晖NAS无端口域名远程访问,ipv4、ipv6均可,开启https,需要云服务器+frp(内网穿透)+宝塔(反向代理)

     作者:陌路遥 其实这篇文章算不上教程,顶多算是经验总结。因为作者也是小白,也是在不断学习,本文所呈现的方法可能较为繁琐,并不是较为简洁的那种,只给大家做一个参考。大佬勿喷,保命。 其实群晖常用的外网远程访问,除了QC之外,就是ipv6+ddns动态域名解析,

    2024年02月09日
    浏览(54)
  • 虚拟机服务器搭建+FRP内网穿透

    一、虚拟机安装         这里安装的是vmware workstation 17 pro和CentOS-7-x86_64-DVD-2009镜像文件  centos虚拟机服务器手把手搭建_虚拟机搭建服务器_无名之辈之码谷娃的博客-CSDN博客  这篇文章对虚拟机搭建讲的还是比较详细。 完成后,需要为用户添加sudo权限,不然你创建的用户是

    2024年01月20日
    浏览(39)
  • frp内网穿透(windows和服务器)

     1.frp下载 https://github.com/fatedier/frp/releases  windows端可以下载windows版本,服务器和客户端尽量保持版本一致,当前最新版本为0.43.0. 2.外网服务器frp服务端配置    2.1  使用    命令创建一个新的文件夹frp,然后在文件夹下使用命令:   2.2 解压,并进入解压文件夹   2 .3 删掉

    2024年02月05日
    浏览(44)
  • 利用frp搭建自己的内网穿透服务器

    本教程基于以下环境完成 带有公网IP的云服务器一台,安装centos7.6系统 一个属于自己的域名,可以是二级域名 域名对应的证书文件 一台64位Windows系统的电脑 开源项目frp 证书文件主要是用来配置https访问的,如果没有证书文件可以参考我的这篇文章生成 centos7中申请Let‘s E

    2024年02月02日
    浏览(44)
  • FRP 进行内网穿透,在一台客户端上配置多台服务器连接,winsw 配置多个 windows 自启动服务,Windows 远程桌面连接时目标客户端断开 WIFI连接解决办法

    本篇博客建立在已经使用 FRP 实现通过一台服务器范围一台客户端的基础上,不会从头开始对如何配置 FRP 实现内网穿透进行介绍。有需要这方面的同学可以参考下面这篇文章:【计算机网络相关】内网穿透介绍以及使用FRP实现内网穿透Windows远程桌面_frp内网穿透-CSDN博客 本篇

    2024年02月01日
    浏览(47)
  • 谷粒商城P139集——云服务器frp内网穿透+nginx

    我注册的域名是第一年14元的 (1)购买域名并备案 (2)域名解析 测试:如域名为gulimall.com 则在浏览器中输入 gulimall.com:9200 (前提是9200端口已经开放) (1)下载 wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz 云服务器下载linux版本注意frps的配置即可

    2024年02月09日
    浏览(42)
  • frp-内网穿透部署-ubuntu22服务器-windows server-详细教程

    FRP是一个开源、简洁易用,高性能的内网穿透和反向代理软件,支持tcp、upp、http、https等协议。 可以去官网下载最新的frp编译好的文件,本文采用frp_0.32.1_windows_amd64版本。也可以在csdn下载。 按下字母“i”键, 在最后一行添加 PermitRootLogin yes配置,最后esc退出编辑模式,再“

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包