赞
踩
2年前写的,从零安装一台实验室内网环境下的V100服务器,利用FRP和阿里云公网EOS进行内网穿透,随时随地访问实验室内网GPU环境,在服务器上启动Jupyter外网访问服务+ssh映射,实现随时随地远程同步调用实验室GPU资源,运行本地Pycharm编写的代码。mac敲代码+调用V100服务器跑model,实现高效快速的开会环境,目前看来还有一定的借鉴意义,所以翻出来,有需要的同学可以参考一下哈~
chmod 777 NVIDIA-Linux-x86_64-440.44.run
777
后跟自己的驱动脚本名字
init 3
./NVIDIA-Linux-x86_64-440.44.run
nvidia-smi
chmod 777 Anaconda3-2019.10-Linux-x86_64.sh
./Anaconda3-2019.10-Linux-x86_64.sh
yes
/root/ide/anaconda3
根据自己的喜好修改,我安装在了/root/ide/anaconda3
路径下
yes
命令行前方已经出现base
,则意味着已经在使用anaconda
中的python
环境
conda
是否可用:conda --version
jupyter notebook --generate-config
cat jupyter_notebook_config.py
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:09a6121216a3:146ccafcfbb6288143cf4fba2ef7e29ff79d7ccc'
c.NotebookApp.notebook_dir = '/root/project/'
c.NotebookApp.port = 9999
jupyter
后台运行启动脚本cat jupyter
#!/bin/sh
nohup sudo /root/ide/anaconda3/bin/jupyter-notebook --ip="0.0.0.0" --config /root/ide/sh/jupyter_config.py --allow-root &
此时 便可通过内外的ip和自定义的9999端口访问到服务器上的jupyter,但如果我们想要在家直接访问公司内网的服务器,我们还需要进行下面第四部操作,完成frp穿透。
如果公司内部使用主机,可以访问外网,但是没有公网ip,如果在家可以访问呢,购买一台有公网ip的主机,比如阿里云9.9/月,再使用frp做内网穿透即可实现公网访问。
注意客户端服务端使用同一个版本的压缩包,避免各种版本错误。
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
tar -zxvf frp_0.29.0_linux_amd64.tar.gz
我们需要配置两个frp穿透,一个用于ssh访问,一个用于jupyter访问,所以我这里定义两个配置文件,frps.ini
用于ssh访问,frps_jupyter
用于jupyter访问。
vim ./frps.ini
[common]
bind_port = 20014 #与客户端绑定的进行通信的端口
vhost_http_port = 20013 #:访问客户端web服务自定义的端口号
vim ./frps_jupyter.ini
[common]
bind_port = 20009 #与客户端绑定的进行通信的端口
vhost_http_port = 20008 #:访问客户端web服务自定义的端口号
frp的运行方法很简单,通过下面这条命令即可完成运行:
./frps -c ./frps.ini
,其中-c
后面跟配置文件名字。
不报错则运行良好。
同样,客户端也需要定义两个配置文件,一个用于ssh访问,一个用于jupyter访问。
vim ./frpc.ini
[common]
server_addr = 39.108.65.236 #公网服务器ip
server_port = 20014 #与服务端bind_port一致
#公网通过ssh访问内部服务器
[ssh]
type = tcp #连接协议
local_ip = 127.0.0.1 #内网服务器ip
local_port = 22 #ssh默认端口号
remote_port = 20015 #自定义的访问内部ssh端口号:
vim ./frpc_jupyter.ini
[common]
server_addr = 39.108.65.236
server_port = 20009
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 9999
remote_port = 20010
./frpc -c ./frpc.ini
,其中-c
后面跟配置文件名字。
如果你,服务端运行了./frps -c ./frps.ini
,客户端运行了./frpc -c ./frpc.ini
.
注意,先运行服务端
打开服务端后台:
发现客户端服务端会有连接信息,且不报错。这时候就可以通过公网39.108.65.236
通过20015
端口,通过ssh连接上内网的服务器。
由于涉及多个配置文件,jupyte配置,启动,frp的配置,启动,为了方便后期使用,一劳永逸,我们将所有启动命令脚本化。然后配置开机自启动。
cat run_frp.sh
#!/bin/sh
nohup /root/tool/frp_0.29.0_linux_amd64/frps -c /root/tool/frp_0.29.0_linux_amd64/frps.ini &
nohup /root/tool/frp_0.29.0_linux_amd64/frps -c /root/tool/frp_0.29.0_linux_amd64/frps_jupyter.ini &
服务端只做端口映射,所以只有两个后台运行的frps
.
./run_frp.sh
客户端涉及jupyter的后台启动,和shh的frpc和jupyter的frpc的启动,
cat run_config_frp_and_jupyter.sh
#!/bin/sh
nohup sudo /root/ide/anaconda3/bin/jupyter-notebook --ip="0.0.0.0" --config /root/ide/sh/jupyter_config.py --allow-root &
nohup sudo /root/ide/download/frp_0.29.0_linux_amd64/frpc -c /root/ide/download/frp_0.29.0_linux_amd64/frpc.ini &
nohup sudo /root/ide/download/frp_0.29.0_linux_amd64/frpc -c /root/ide/download/frp_0.29.0_linux_amd64/frpc_jupyter.ini &
把需要开机启动的脚本程序直接写入/etc/rc.d/rc.local
文件中
sudo sh /root/ide/sh/run_frp.sh
把需要开机启动的脚本程序直接写入/etc/rc.d/rc.local
文件中
sudo sh /root/ide/sh/run_config_frp_and_jupyter.sh
conda
虚拟环境conda create -n tf2 python=3.6
环境会被切换到tf2
,这时候安装环境就会安装到tf2
中,不会影响其他环境。
conda activate tf2
pip install ipykernel
python -m ipykernel install --user --name tf2 --display-name "tf2"
jupyter
切换kernel
tensorflow-gpu
环境conda install tensorflow-gpu
tf.__version__
ip为之前映射出来的公网ip,端口为绑定的端口.内网的话是22.我这里使用我的内网穿透的服务器。
这里选择的解释器使用虚拟环境中定义的,可以通过which python3.6
来查看路径
点赞订阅加关注,变帅变强不变秃~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。