关于如何配置GPU服务器可以进行远程,可以让GPU服务器支持SSH连接的操作设置,另外还可以配置GPU服务器的Jupyter Notebook可以进行远程登录操作,最后是关于如何配置好GPU服务器进行科学链接网络。
1、GPU服务器SSH配置
SSH 是为建立在应用层基础上的一种安全协议。目前来说SSH是最可靠,可以专为了应用远程登录和其他网络服务提供的一种安全性的协议。可以利用SSH协议有效地防止在远程链接管理过程中出现信息泄露的问题。以下是关于GPU服务器SSH配置内容:
一般来说,会通过SSH登录远程的服务器进行操作,但是在配置GPU服务器其实也是很简单的。
# 首先要安装openssh-server
-sudo apt get install openssh server-
# 启动ssh
sudo /etc/init.d/ssh start
# 设置sshd_config
sudo vi /etc/ssh/sshd_config
# 添加:
################# /etc/ssh/sshd_config #####################
PermitRootLogin no # 不允许root认证登录
PasswordAuthentication
yes
# 允许密码认证
############################################################
# 重新启动
sudo /etc/init.d/ssh restart
# 停止:sudo /etc/init.d/ssh stop
# 开启22端口
sudo ufw status
sudo ufw enable
sudo ufw status
sudo ufw allow 22
sudo apt install net-tools
ifconfig # 查看内网的IP
在这个时候就可以在同一个内网下通过SSH链接到GPU服务器了。
ssh zq@192.168.124.21
但是在完成以上的SSH配置操作也是没法进行远程登录。是通过远程登录,是需要内网的穿透,下面是第二部分操作内容。
2、Jupyter配置
Jupyter Notebook是非常方便EDA探索性数据分析、特征挖掘、调参、模型训练等一系列实验,是GPU服务器必备之一。下面的内容是关于如何在远程连接到GPU服务器的Jupyter Notebook。
如果是没有安装python环境情况下,是可以先操作进行基本环境的安装,使用miniconda情况下:
安装Jupyter并生成配置文件:
# 获取最新的miniconda安装包
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh
# 记得把conda加入环境变量
source ~/.bashrc
# 安装jupyter
conda install -y -c anaconda jupyter
# 安装jupyter后,生成jupyter配置文件
jupyter notebook --generate-config
进入Ipython配置登录密码
进入ipython配置登录密码,并复制hash码 sha1:...,可以用在下一步的配置操作:
In[1]:from notebook.auth import passwd
In[2]:passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9f*****89e11aed'
然后编辑Jupyter配置文件:
vi .jupyter/jupyter_notebook_config.py
添加以下内容并保存退出:
c..NotebookApp.ip='*'# 如果不行,使用 '0.0.0.0'
c.NotebookApp.notebook_dir = u''
c.NotebookApp.open_browser =False
c.NotebookApp password ='sha1:67c9e60bb8b6:9f*****89e11aed' # 刚刚得到的加密码
c.NotebookApp.port =6666 打开6666端口:sudo ufw allow 6666
后台运行Jupyter
nohup jupyter notebook >> jupyter.out 2>&1&
然后就可以直接使用内网登录GPU服务器的Jupyter了,在浏览器打开访问http://192.168.124.21:6666,在这个时候登陆的密码是在Ipython设置的密码了。但是还是不能从外网访问网址,此时还是需要进行内网穿刺才可以。
内网穿透是指在实现不同局域网内的主机之间是可以通过互联网进行通信的技术访问。在互联网中唯一定位识别一台访问主机的方法是通过公网的IP地址,但是固定IP地址是一种非常稀缺的资源,也是不可能给每一台GPU服务器都分配一个IP地址。因此是需要通过某些工具来进行内网穿透,这样才可以正常远程GPU服务器操作了。
内网穿刺工具有natapp快捷方便,但是免费版流量带宽限制较大,不稳定。frp是开源免费的内网穿透工具,但是需要一台有公网IP的云服务器。
4. 科学上网配置
Ubuntu下配置shadowsocks实现科学链接网络,首先是需要:
shadowsocks server:可以提供科学上网的shadowsocks服务器的配置其中包括了IP、端口、密码、加密等方式。
shadowsocks-libev:可以用作本地ubuntu的客户端,也可以作为shadowsocks server。
privoxy:可以把SOCKS5协议转为HTTP协议。
1.shadowsocks server
即提供科学上网的shadowsocks服务器的配置(即IP、端口、密码、加密方式等)。没的话可以考虑自己购买国外服务器搭建,也可以~~直接找人买这样的服务~~。
2. shadowsocks-libev
第一步是先安装 shadowsocks-libev作为linux下的SS客户端:
sudo apt install shadowsocks-libev
安装完配置:
sudo vi /etc/shadowsocks-libev/config.json
输入远程SS服务器配置:
# /etc/shadowsocks-libev/config.json
{
"server""YourSSServerIP" # 改成远程SS服务器的IP
"server_port":port # 改成远程SS服务器配置的端口号
"local_address":"127.0.0.1" # localhost
"local_port":1080 # 本地端口
"password""PASSWORD" # 改成远程SS服务器配置的密码
"timeout":600, # timeout
"method":"Encryption" # 加密方式,比如我的是chacha20-ietf-poly1305
}
开放本地1080端口:
sudo ufw allow 1080
后台运行本地ss客户端,ss-local:
nohup ss-local-c /etc/shadowsocks-libev/config.json >nohup.out 2>&1&
privoxy
本地ss客户端配置完成之后,依旧是不能正常使用,还是需要把ss的socks代理转换为http代理,这样才可以进行正常外网访问。
安装:
sudo apt-get install privoxy
配置:
sudo vi /etc/privoxy/config# 在/etc/privoxy/config中添加:
listen-address 0.0.0.0:8181 # 通过8181端口,监听所有的IP
forward-socks5 /127.0.0.1:1080 # 将请求转发到本地1080端口
开放本地8181端口:
sudo ufw allow 8181
启动privoxy
sudo service privoxy start
sudo service privoxy start # 启动服务
sudo service privoxy stop # 终止服务
sudo service privoxy restart # 重启服务,或者:sudo /etc/init.d/privoxy restart
sudo service privoxy status # 服务状态
然后命令行运行:
export http_proxy="127.0.0.1:8118"
export https_proxy="127.0.0.1:8118"
export ftp_proxy="127.0.0.1:8118"
建议可以把这个加入到 ~/.bashrc,因为不加入的话,是需要每次都得重新输入操作。
然后可以尝试:
sudo apt install curl
curl www.google.com
完成以上操作就可以发现返回内容了。 ping是不工作的,是要用curl测试才可以。