自建远程桌面过程 vnc + frp
为何需要自建远程控制桌面
想要随时随地远程一台电脑?上网搜一下常见方案有teamviewer,向日葵远控,这2宝贝基本满足普通用户的大部分需求。但是如果想特定端口,商业环境公司网络,还想在手机上远控。那就得自己DIY了。
所需硬性条件
单纯内网远控
在家有多个电脑,想直接用手机远控。那就直接装TightVNC和VNCViewer就足够了。此处唯一需要注意的是
- TightVNC提供Client Viewer,但不怎么好用。其他直接下一步就成。同时记得设置密码。
- www.realvnc.com/en/connect/download/viewer 一看就懂,按需下载
- 连接的服务器地址请填被控电脑的内网地址。可在命令行下敲ipconfig看。
公网远控
模拟情景是这样的,用手机4G网络,使用VNCViewer软件连接114.114.114.114:55555服务器。服务器通过frp和某内网电脑192.168.1.55的frp软件通信,frpc则和自身的vnc server服务端口127.0.0.1:5900通讯。
公网服务器FRPS安装和使用
- 以ubuntu为例,直接下载frp https://github.com/fatedier/frp/releases
- 解压包,找到frps.ini 进行配置
[common]
bind_addr = 0.0.0.0
bind_port = 55000 //此处端口重要
token = testtoken
//WEB HTTP服务详情查看的端口
dashboard_port = 55500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = adminpsd
log_file = ./home/ubuntu/frps_log.log
log_level = info
log_max_days = 3
- 运行包含指定配置的frps服务器程序
frps -c ./frps.ini
服务设置,让frps成为后台服务
- 新建一个服务文件 frps.service
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/home/ubuntu/frp/frps -c /home/ubuntu/frp/frp_0.20.0_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
- 复制到ubuntu的服务目录下
/lib/systemd/system
- 通过以下指令来判断frps的服务运行
//重载列表
systemctl daemon-reload
//确认frps是否存在
systemctl --all | grep frps
//确认具体状态
systemctl status frps
//启动
systemctl start frps
- 最后是设置自启动
//是否自启动
systemctl is-enabled frps
//是否已启动
systemctl is-active frps
//设置自启动
systemctl enable frps
//禁止自启动
systemctl disable frps
客户端设置
让被控电脑通过FRPS将VNC服务暴露在公网
- 直接下载frp https://github.com/fatedier/frp/releases
- 解压包,找到frpc.ini 端口和token设置
[common]
server_addr = 114.114.114.114 //公网服务器ip
server_port = 55000 //frp端口
token = testtoken //需和frps.ini的设置的一致
[range:VNC]
type = tcp
local_ip = 127.0.0.1 //
local_port = 5900 //TightVNC Service所设置的Main Server port
remote_port = 55555 //公网VNC访问端口,日后Viewer通过114.114.114.114:55555进行链接
use_encryption = false
use_compression = false
- TightVNC Service设置 - 开启回路
Access Control -> 勾选 Allow loopback connections
(可选)Windows下为frpc设自动启动服务
- 用WINSW 来自动设置服务吧
- 下载,解压,配置winsw.xml
<service>
<id>frpc</id>
<name>frp0.27.1-windows-amd64</name>
<description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
<executable>H:/frp_0.27.1_windows_amd64/frpc.exe</executable>
<arguments>-c H:/frp_0.27.1_windows_amd64/frpc.ini</arguments>
<onfailure action="restart" delay="10 sec"/>
<onfailure action="restart" delay="20 sec"/>
<log mode="append" />
<logpath>H:/frp_0.27.1_windows_amd64/frp_logs.log</logpath>
<waithint>15 sec</waithint>
<sleeptime>1 sec</sleeptime>
</service>
- 执行命令行安装命令
//安装服务
winsw install
//开启服务
winsw start
- 查看结果