所需环境
Nodejs(版本无要求)
Python:3.X
websockify :https://github.com/novnc/websockify-js (文档中演示的为Win版本,linux自行下载即可)
noVNC : https://github.com/novnc/noVNC
utralVNC :https://uvnc.com/downloads/ultravnc.html
安装
1.安装utralVNC
这里安装直接双击打开安装包就行,设置可以参考我的也可以自行修改
一直下一步到安装完成即可
utralVNC Server是服务端
utralVNC Viewer是连接工具(没啥用)
运行服务端后我们任务栏右键-打开Admin properties 设置
这里其他设置不需要更改 只修改连接密码和用户输入权限就行了
2. novnc安装
首先打开cmd 安装一下依赖模块
npm install ws
npm install optimist
npm install mime-types
进入到C:\Users\{userName}\node_modules\
目录下, 将下载的noVNC-master.zip
压缩包解压到当前目录,重命名为noVNC
这里吧userName改成自己的电脑用户名
3.安装 websockify-js
进入到C:\Users\{userName}\node_modules\noVNC
目录下, 将下载的websockify-js-master.zip
压缩包解压到当前目录,重命名为websockify-js
进入到C:\Users\Administrator\node_modules\noVNC\websockify-js\websockify
目录下, 打开命令行,启动代理服务,启动命令如下:
我这里因为没有吧novnc放到node_modules下 所以启动命令用的不一样
node websockify.js --web C:\Users\Administrator\node_modules\noVNC 9000 localhost:5900
- –web:之后的路径必须是我们下载的
noVNC-master.zip
解压之后所在的那个安装了ws
、optimist
和mime-types
等依赖的node_modules目录的绝对路径,我这里是C:\Users\Administrator\node_modules\noVNC
,这里需要根据你自己的实际安装情况进行修改,负责会找不到nvc.html
或vnc_lite.html
文件 - 9000 代表代理端口
- 9000端口的请求转发到localhost:5900处理
浏览器访问: localhost:9000/vnc.html 点击链接输入密码就可以远程控制了
内网穿透
搭建完成之后应为电脑没开公网,如何让外网也可以访问呢—-内网穿透
这里可以用免费的 例如natapp Ngrok等等,我这里因为有一台多余的服务器 所以就在自己服务器搭建一个
所需环境
系统:windowsServer 2012 x64
frp (版本可用最新,根据自己系统选择) : https://github.com/fatedier/frp
下载软件解压出来 然后修改配置:
服务端配置:
#服务器绑定端口
bind_port = 7000
#web面板端口
dashboard_port = 60007
#web面板账户
dashboard_user = admin
#web面板密码
dashboard_pwd = loser
#token
token = loser
#http转发端口
vhost_http_port = 8080
vhost_https_port = 443
大概配置就填这些就好,web面板根据自己选择 开不开都行
运行命令:
frps -c frps.ini
客户端配置:
[common]
# 服务器公网ip(换成自己服务器ip)
server_addr = XXXXXXX
# 服务器设置的端口
server_port = 7000
# 默认设置
admin_addr = 127.0.0.1
# 本地管理端口,自行修改(需要映射的端口)
admin_port = 7400
# for privilege mode,和服务端一致
privilege_token = loser
#http
[workflow]
type = http
local_port = 7000
custom_domains = www.xxx.com
#tcp
[ssh]
type = tcp #通信协议
local_ip = 127.0.0.1 #本地地址
local_port = 3389 #要转发的端口
remote_port = 6000 #要转发到的远程端口
[demo]
type = udp
#本地客户端udp端口
local_port = 9000
#自定义远程调用端口
remote_port = 9001
还有其他协议的我就不一一列举了,有需要的自行查看官网文档
启动命令:
frpc -c frpc.ini
配置详解
[common] # 通用配置段
bind_addr = 0.0.0.0 # 绑定的IP地址,支持IPv6,不指定默认0.0.0.0;
bind_port = 7000 # 服务端口;
bind_udp_port = 7001 # 是否使用udp端口,不使用删除或注释本行;
kcp_bind_port = 7000 # 是否使用kcp协议,不使用删除或注释本行;
# proxy_bind_addr = 127.0.0.1 # 代理监听地址,默认和bind_addr相同;
# 虚拟主机
vhost_http_port = 80 # 是否启用虚拟主机,端口可以和bind_port相同;
vhost_https_port = 443
vhost_http_timeout = 60 # 后端虚拟主机响应超时时间,默认为60s;
# 开启frps仪表盘可以检查frp的状态和代理的统计信息。
dashboard_addr = 0.0.0.0 # frps仪表盘绑定的地址;
dashboard_port = 7500 # frps仪表盘绑定的端口;
dashboard_user = admin # 访问frps仪表盘的用户;
dashboard_pwd = admin # 密码;
assets_dir = ./static # 仪表盘页面文件目录,只适用于调试;
# 日志配置文件
log_file = ./frps.log # 日志文件,不指定日志信息默认输出到控制台;
log_level = info # 日志等级,可用等级“trace, debug, info, warn, error”;
log_max_days = 3 # 日志保存最大保存时间;
token = 12345678 # 客户端与服务端通信的身份验证令牌
heartbeat_timeout = 90 # 心跳检测超时时间,不建议修改默认配置,默认值为90;?
# 指定允许客户端使用的端口范围,未指定则没有限制;
allow_ports = 2000-3000,3001,3003,4000-50000
max_pool_count = 5 # 每个客户端连接服务端的最大连接数;
max_ports_per_client = 0 # 每个客户端最大可以使用的端口,0表示无限制
authentication_timeout = 900 # 客户端连接超时时间(秒),默认为900s;
subdomain_host = frps.com # 自定义子域名,需要在dns中将域名解析为泛域名;
tcp_mux = true # 是否使用tcp复用,默认为true;
# frp只对同意客户端的连接进行复用;