主要应用场景:在外面远程操作家里的深度学习服务器,这里通过阿里云的公网云服务器搭建一个frp服务,实现内网穿透,从而可以直接通过远程桌面和SSH实现对家里的服务器进行操作。
第一步:购买阿里云公网服务器
1 vCPU 1 GiB(I/O优化) ecs.t5-lc1m1.small100Mbps (峰值) 包一年300多RMB。
第二步:搭建云服务器,设置系统和登录密码。这里我选择的ubuntu16系统
阿里云公网服务器操作:
首先登录系统,从网上下载frp软件:wget https://github.com/fatedier/frp/releases/download/v0.24.1/frp_0.24.1_linux_amd64.tar.gz
此frp软件下载很慢,因为用S3 amazon,建议本机下载好上传到服务器。
解压:tar -zxvf frp_0.24.1_linux_amd64.tar.gz
重命名:mv frp_0.24.1_linux_amd64 frp
在公网服务器上删除客户端相关的文件,只保留一下两个文件:
frps frps.ini
配置文件:vim frps.ini
[common]
#服务器开放的端口
bind_port =7000
在阿里云管理平台配置安全组规则:服务器段需要设置3个端口入站规则:注意是3个端口:7000和6000,6001,其中6000和6001是在客户端的端口。
启动服务:
cd frp
nohup ./frps -c frps.ini &
客服端配置(家里深度学习服务器ubuntu16):
同样解压frp_0.24.1_linux_amd64.tar.gz,在内网机器上删除服务端相关的文件,只保留以下两个文件:
frpc frpc.ini
然后配置frpc.ini文件
[common]
server_addr = 你自己服务器端ip(公网ip)
server_port = 7000 #对应服务器配置中的端口
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[remote]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6001
在内网目标主机上运行客户端程序:
$ nohup ./frpc -c frpc.ini &
至此,配置已经完成,可以在外网电脑通过实现远程桌面内网电脑。
远程桌面的地址:xxx.*.*.xxx(阿里云服务公网IP):6001(端口号,remote_port)
在Win10端搜索远程桌面连接,输入xxx.*.*.xxx(阿里云服务公网IP):6001的ip地址,点击连接。
选择vnc-any,输入内网机器的ip地址,端口不变(5900),桌面共享设定的密码,即可远程连接到内网机器ubuntu 16.04桌面
ssh 登录:注意port是6000而不是SSH default port 22
$ ssh -p 6000 user_name1@server_addr
附件:
安装内网机器SSH server:
sudo apt-get install openssh-server
ssh localhost //启动ssh server
配置openssh-server:
openssh-server配置文件位于/etc/ssh/sshd_config,在这里可以配置SSH的服务端口等,例如:默认端口是22,可以自定义为其他端口号,如222,然后需要重启SSH服务。
Ubuntu中配置openssh-server开机自动启动 :
打开/etc/rc.local文件,在exit 0语句前加入:
/etc/init.d/ssh start
安装内网机器的远程桌面:
1、打开终端,安装xrdp,vncserver
sudo apt-get install xrdp vnc4server xbase-clients
2、安装desktop sharing(Ubuntu16.04默认已经安装),可以到应用商店下载。打开desktop sharing,设置如下:
3、安装安装dconf-editor,取消权限限制:
sudo apt-get install dconf-editor
dconf-editor设置:org > gnome > desktop > remote-access,取消 “requlre-encryption”