Tromso,Norway
本文接着介绍一下怎样配置自己的GPU服务器ubuntu ftp服务器配置,便捷进行远程“炼丹”。全文主要介绍怎样配置致使服务器支持SSH联接、如何配置服务器的JupyterNotebook促使可以远程登陆以及怎样配置服务器进行科学上网。
本文目录:
SSH配置
Jupyter配置
外网穿透
科学上网配置
1.SSH配置
SSH为SecureShell的简写,SSH为构建在应用层基础上的安全合同。SSH是目前较可靠,专为远程登陆会话和其他网路服务提供安全性的合同。借助SSH合同可以有效避免远程管理过程中的信息泄漏问题。
SSH你们肯定都十分熟悉了,日常常常会通过SSH登入远程的服务器进行操作。但怎样配置我们的服务器,致使它可以”被SSH“呢?虽然很简单。
# 首先要安装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到这台服务器了。例如我的是:
ssh zq@192.168.124.21
并且仍然无法远程登陆。远程登陆我们须要外网穿透,具体看第三部份介绍。
2.Jupyter配置
JupyterNotebook十分便捷EDA(探求性数据剖析)、特征挖掘、调参、模型训练等一系列实验,乃丹药必备利器之一。这儿介绍一下怎样在远程联接到该服务器的JupyterNotebook,真正进行“远程丹药”。
若果没有安装python环境,先进行基本环境的安装,这儿使用miniconda:
2.1安装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
2.2步入Ipython配置登陆密码
步入ipython配置你的登陆密码,并复制hash码sha1:...,用于下一步的配置。
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9f*****89e11aed'
2.3编辑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
2.4后台运行Jupyter
nohup jupyter notebook >> jupyter.out 2>&1 &
这个时侯你就可以在外网登陆该服务器的Jupyter啦!
打开浏览器访问:6666,密码是你在Ipython里设置的密码。
然而这个时侯仍然无法从内网访问,我们还要进行外网穿刺。
3.外网穿透
简单来说实现不同局域网内的主机之间通过互联网进行通讯的技术叫外网穿透。在互联网中惟一定位一台主机的方式是通过网段的IP地址,但固定IP是一种十分稀缺的资源,不可能给每位服务器都分配一个。为此我们须要通过一些工具来进行外网穿透,这样就能愉快的远程“炼丹”啊!
3.1natapp
natapp快捷便捷,并且免费版流量带宽限制较大,不稳定。我用的是natapp的付费版,分别为ssh和jupyter开了一条隧洞linux设置默认网关,觉得挺好。官方有明晰的手册,可以瞧瞧官网。
3.2frp
frp是开源免费的外网穿透工具,而且前提你须要一台有网段IP的云服务器。
3.3其他
其他工具还有:ngrok/ssh+autossh/lanproxy/spike/花生壳等,不过我都没试过了,你们有兴趣可以探求一下。
4.科学上网配置
Ubuntu下配置shadowsocks实现科学上网。由于Google真的是好用啊...
但虽然此次搭建是由于kaggle递交赛事结果须要科学上网,这...
首先我们须要:
1.shadowsocksserver
即提供科学上网的shadowsocks服务器的配置(即IP、端口、密码、加密方法等)。没的话可以考虑自己订购美国服务器搭建ubuntu ftp服务器配置,也可以~~直接找人买这样的服务~~。
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 &
3.privoxy
本地ss顾客端配完后,还是无法使用。我们须要将ss的socks代理转换为http代理,能够进行正常的网路访问。最初我使用了polipo,但这个早已不维护了,但是不是很稳定,后来换成了privoxy。
安装:
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
关于privoxy更多操作(这儿就不须要操作了):
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是不work的linux shell,用curl测试。
之后我们就可以happykaggle啦!
推荐原创干货阅读: