前言
由于经常下班后还要处理问题, 但是又没有运维那么频繁, 就不想天天背着电脑来回跑, 刚开始用的 teamviewer, 后来被商业劝退了 (就是不让用了, 让买序列号), 刚开始想到的替代品是 RealVNC, 以前见运维提供 winServer 服务器远程桌面的时候用过, 用了之后发现局域网挺好, 一点都不卡, 但是已经过公网, 就基本动弹不得了, 网上又发现向日葵, anyDesk 等工具, 向日葵说是有黑历史, 不敢用, anyDesk 使用了之后发现卡顿明显, 心里多少有些不爽, 在不懈的搜寻中, 发现 win 企业版只带远程桌面, 开启即可, 但是只能公网使用, 不过网上有很多内网穿透工具, 收费是一方面, 安全也不好说. 后来看到有人用 frp 结合云服务器自己搭建内网穿透链路. 自己注册了个云服务, 有个新用户试用 30 天, 正好验证 frp + 云服务器 + win 远程桌面的效果, 试了之后发现比 teamviewer 还刘畅. 既然第三方远程桌面收费, 内网穿透链路也收费, 不如租个云服务器, 自己搭个链路, 用起来也安全了, 没事了还可以自己弄个网站玩玩, 特此记录.
frp 介绍
frp 是一个可用于内网穿透的高性能的反向代理应用, 支持 tcp, udp 协议, 为 http 和 https 应用协议提供了额外的能力, 且尝试性支持了点对点穿透.
服务端搭建
frp 程序地址:
https://github.com/fatedier/frp/releases
服务端配置
1, 我在华为云服务器上 linux18.04 上搭建, 配置参数如下
- mkdir frpTools
- cd frpTools
- wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
- tar -zxvf frp_0.33.0_linux_amd64.tar.gz
- cd frp_0.33.0_linux_amd64
2, 这里有区分服务端和客户端, frpc 就是客户端, frps 就是服务端
frps.INI 配置
- [common]
- bind_port = 7100
- dashboard_port = 7500
- dashboard_user = xx
- dashboard_pwd = xx
3, 服务端增加安全组规则
3.1, 指定端口, 源地址, 描述随意写
4,dashboard 是可视化的观察页面
启动服务
./frps -c frps.INI
服务端增加 frps 开机启动
1, 创建服务文件
sudo VIM /lib/systemd/system/frps.service
2, 写入以下配置:(红色字体需要根据自己的环境修改)
- #!/bin/sh
- [Unit]
- Description=Frp Server Service
- After=network.target
- [Service]
- Type=simple
- User=yourUserName
- Restart=on-failure
- RestartSec=5s
- ExecStart=/usr/frp/frps -c /usr/frp/frps.INI
- [Install]
- WantedBy=multi-user.target
3, 启动 Frps
sudo systemctl start frps
4, 查看 Frps 运行日志
5, 设置开机自启
sudo systemctl enable frps
注意:
Frps 配置完成, 需要将对应的端口放行, 不然无法连接.
6, Frps 重启:
sudo systemctl restart frps
7, Frps 停止:
sudo systemctl stop frps
客户端搭建
需要远程的哪个电脑经常不关机, 我就直接在 Windows 上搭建客户端了.
1, 下载 win 版 frp
2, 解压到自己理想的盘符, 我用的 E 盘
frpc.INI 配置客户端, 将本地的 3389(win 远程桌面默认关口, 可自行修改) 端口映射到外网的 7200 端口上
- [common]
- server_addr = xxx
- server_port = 7100
[RDP] ; 这个是反向代理的名称, 可以随意设置
type = tcp ;RDP 是 TCP 协议
local_ip = 127.0.0.1 ; 本机 IP
local_port = 3389 ; 远程桌面的默认端口
remote_port = 7200 ; 外网访问的端口
custom_domains = http://www.yourdomain.com/ ; 如果有域名可以绑定域名
3, 启动客户端
进入到 frp 的加压目录执行一下命令启动
frpc.exe -c frpc.init
win10 增加 frpc 开机启动
Windows 系统经常自己更新系统并自动重启, 以免它自作主场重启后不能远程, 要设置一下 frpc 的开机启动
8, 创建启动脚本
右键创建记事本修改文件名及扩展名为 frpStart.bat, 在里面输入如下内容
- @echo off
- :home
- frpc.exe -c frpc.INI
- goto home
这样的话 Frp 在崩溃, 异常退出进程后, 将会自动重新启动.
9, 将建好的 frpStart.bat 文件放到 frp 根目录下 (其实跟 bat 文件中的 frpc.exe 这一行的路径, 如果是绝对路径放哪也就无所谓了)
10, 利用任务计划程序, 开机启动 frpc
a) 在 win10 小娜中, 输入 "任务计划程序" 将会自动搜索, 接着打开它.
b) 3.2, 点击右侧的 "创建任务", 开始创建
c) 设置
1, 名称随意填写, 安全选项选择 "不管用户是否登录都要运行", 当然你也可以选择 "只在用户登录时运行".
2, 选择 "不管用户是否登录都要运行" 可以让你的电脑在断电自动启动后自动运行 frp, 你就可以远程桌面连接电脑了.
3,"使用最高权限运行" 也是可选的, 根据个人需要可以选上.
4, 最后勾选 "隐藏", 就不会在启动时弹出命令行窗口了.
d) 接着转到 "触发器" 页, 点击新建, 选择 "启动时"
e) 接着转到 "操作" 页, 点击新建, 选择 "启动程序"
在程序或脚本一栏选择第一步创建的 start.bat, 下面的 "起始于" 填写 start.bat 的路径 (不要包含 start.bat)
例如你的 start.bat 在 E:\frp\start.bat, 那么你只需要在 "起始于" 填写 E:\frp\
f) 接着返回 "常规" 页, 点击确定,
此时会要求输入密码, 输入你的电脑密码, 然后点击确定即可.
以后就会开机自动启动 frp 了, 并且不会弹出命令提示符窗口
11, 到此云服务器搭建 frps 完成, 需要远程的电脑上安装 frpc 也已经完成, 接下来就是测试
a) 登录云服务后台拿到云服务器的公网 ip
b) 手机上安装 microsoft 远程桌面
c) 安装完成之后, 应用的名字叫 RDClient
打开 App 在电脑名称哪里输入公网 IP 和端口号
d) 存储之后就可以连接电脑了.
4.5, 手机上验证
使用手机验证远程桌面能否公网使用很方便, 改成 4G 就行, 主要还是在电脑上使用, 毕竟屏幕大小, 键盘, 鼠标等都方便. win+r 输入 mstsc 打开远程桌面窗口, 输入 ip:port 即可使用 (注意这里要带上端口号), 相应速度绝对在 teamviewer 之上.
tips:
如果电脑用的是无线网, 连接无线网时记得勾选自动连接, 不然电脑自动重启后网络不能自动连接, 会无法连接远程桌面.
来源: https://www.cnblogs.com/wwy209/p/willWang.html