远程控制大家最常用的可能是TeamViewer,通过控制实时画面进行操作。但我们的非公网下的服务器并不能使用,而且也不希望对原账号画面造成改动。
FRP
,采用具有公网ip的服务器做跳板,可以很好的实现这一过程,就跟本地ssh连接一样。
以下是具体操作:
server & client
下载 frp
1
2
3
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
tar zxvf ./frp_0.21.0_linux_amd64.tar.gz
cd frp_0.21.0_linux_amd64/
server 配置
跳板机器,公网ip,可通过谷歌云实现
进行如下配置:
修改frps.ini
配置文件, 设置bind_port
端口号
在/etc/rc.local
添加启动服务
1
nohup ./frps -c ./frps.ini > /dev/null 2>&1 &
client 配置
受控机器设置:
修改frpc.ini
配置文件, 设置server_port = bind_port
,设置remote_port
端口号、server_addr
端口号
在/etc/rc.local
添加启动服务
1
nohup ./frpc -c ./frpc.ini > /dev/null 2>&1 &)
远程控制端
1
ssh -oPort=remote_port username@server_addr
注意事项
当需要操作多个服务器时,跳板server
使用一个bind_port
,多个client
岔开remote_port
即可。
因为ssh有时断开,难免造成进程丢失程序终端,所以应采用以下形式:
1
nohup command > ~/Dropbox/droplog/`date '+%y%m%d%H%M%S'`.txt 2>&1 &
nohup [...] & 为固定搭配;> 覆盖;>> 续写
输出目录自定,我这里是放到了Dropbox下方便查看情况。
ps. 非SSH形式,即vncserver下可以使用如下形式,SHELL的输出可以同时保存到文件:
1
command | tee ~/Dropbox/droplog/`date '+%y%m%d%H%M%S'`.txt ( tee 为同时保存到文件 )
待验证:确保ssh登陆之后使用vncserver命令打开图形界面,激活dropbox等服务