• 使用 FRP 让部门同事都能直接远程桌面办公( 适用于 TEAM 和向日葵卡顿的用户)


    背景说明

    这两天由于疫情的原因,很多公司都得在家远程上班,然后像我们这类小公司有没有 VPN 这些东西。传统的远程回公司只能依靠 Teamviewer 或者向日葵等工具。但是由于最近用户量很多,可能会造成卡顿,本着能不花钱就不花钱的原则,就得找一个折中的方案。既不用收费,也不会像花生壳,nat123 这种从第三方别人的服务器进行数据传输。于是便找到了本次的主角:FRP

    项目说明

    该项目的开源地址:

    https://github.com/fatedier/frp

    在文档中有这样一个架构图:

    简单的说明一下:

    就是我们需要一个中间机器用于运行 FRP 的 Server(服务端),而且该机器需要有公网 IP。

    在我们后端的电脑上门安装 FRP 的 Client(客户端),可以在这上面运行 tcp 或者 http 等服务。

    用户 User 可以通过访问官网 IP 的机器映射到后端 FRP 的机器,进行服务访问。

    当然,我们本次的需求肯定不是这个,这个只是用于搞搞什么 web 访问,远程连接等操作,我们这一次使用的是这个的升级版,架构如下:

    说明:

    1. 左边为用户在家的电脑,右边为用户在办公室的电脑。

    2. 公网 IP 的服务器为公司一台云上面的服务器,需要运行 FRP Server(服务端)。

    3. 用户在家里的电脑和公司的电脑上面需要运行 FRP Client(客户端)。

    安装配置

    1. 下载服务:

    https://file.kskxs.com/?dir=frp

    我这里以 0.29 版本为例!

    2. 在具有公网 IP 的机器上面安装配置 Server 端,我这个是 CentOS 7 的,Windows 也是同理,只是需要下载对应的系统版本:frp_0.29.0_linux_amd64.tar.gz

    # 解压
    tar -zxf frp_0.29.0_linux_amd64.tar.gz
    mv frp_0.29.0_linux_amd64 /opt/FRP-Server
    
    # 删除不需要的配置
    cd /opt/FRP-Server
    rm -rf frpc* frps_full.ini  frps.ini  LICENSE  systemd
    mkdir logs

    添加配置:

    vim frps.ini

    内容如下:

    [common]
    # 配置IP端口
    bind_addr = 这台机器的公网IP
    bind_port = 10000
    bind_udp_port = 10001
    # 配置管理页面的端口,用户密码
    dashboard_port = 10002
    dashboard_user = admin
    dashboard_pwd = admin
    # 配置日志保存位置和等级
    log_file = ./logs/frps.log
    log_level = info
    log_max_days = 3
    # 客户端连接的token,最好是随机生成的
    token = H99h8HHXSHXSSSCCC

    启动服务:

    ./frps -c frps.ini &

    后台运行,可以通过查看端口看到服务!

    3. 在公司的电脑上面安装启动 FRP Client 端,由于是 Windows,所以需要下载 Windows 的包:frp_0.29.0_windows_amd64.zip

    为了便于区分,解压后将文件夹重命名为:FRP-remote

    同理删除没用的文件,只留下 frpc.exe frpc.ini 即可:

    其中 frpc.ini 的内容如下:

    [common]
    server_addr = 公网服务器的公网IP地址
    server_port = 10000
    # 公网服务器 FRP Server 配置文件里面的 token
    token = H99h8HHXSHXSSSCCC
    
    # 名字随意,但是待会儿家里电脑必须和这个一致
    [dylan_p2p_rdp]
    type = stcp
    # 值随意,但是待会儿家里电脑必须和这个一致
    sk = dylan123131223131
    local_ip = 127.0.0.1
    # 由于是远程桌面,所以是 3389 端口
    local_port = 3389

    启动方法,进入文件夹,在地址栏输入 cmd,打开命令行:

    命令行执行命令:

    frpc.exe -c frpc.ini

    效果如下类似:

    注意:该窗口由于没用后台运行,所以不能关掉!

    显示 Success 启动完成以后,在公司的电脑开启远程桌面:

    开启远程:

    至此,公司的电脑配置完成!

    4. 家里的电脑配置:

    家里的电脑也是 Windows,所以一样使用安装包:frp_0.29.0_windows_amd64.zip

    除了配置文件不一样,其他配置和公司电脑一样,但是为了便于区分,我们将其解压改名为 FRP-vistorfrpc.ini 内容如下:

    [common]
    # 公网服务器的IP和端口和token
    server_addr = 公网服务器的公网IP地址
    server_port = 10000
    token = H99h8HHXSHXSSSCCC
    
    # 自定义的名字
    [dyaln_RDP_visitor]
    type = stcp
    role = visitor
    # 这个就是 RPC-remote 中配置的,必须一致
    server_name = dylan_p2p_rdp
    # 这个就是 RPC-remote 中配置的,必须一致
    sk = dylan123131223131
    bind_addr = 127.0.0.1
    # 这个本机远程端口,自己随便定义,远程的时候使用
    bind_port = 53389

    然后在命令行一样的方式启动即可,效果如下:

    5. 远程测试:

    输入家里电脑 配置文件中的 IP 和端口即可,然后验证远程电脑的用户密码:

    效果如图:

    远程成功!

    特别说明

    1. 如果公网服务器带宽有限卡顿,可以将两个 FRP Client 配置中的协议由 stcp 换成 xtcp,但是这种穿透方式不一定能够成功。在文档中有这样一个说明:

    2. windows 10 远程可能出现默认输入法无法使用输入中文的问题,公司电脑安装搜狗输入法就解决。

    3. 服务自带了仪表盘,之前我们也配置过,可以通过公网 IP + 仪表盘端口登录访问:

    至此,基本的远程办公功能就实现了!其他复杂功能可以看官方文档和默认自带的 full 配置,注释都很详细。

    最后也感谢这位老哥的开源!!!

  • 相关阅读:
    前端的貌似不顺道整个 小程序,不是那么回事哈
    sql server 大批数据插入时,时间过长的问题
    web api 权限控制
    推荐一个测试Web API, web service工具
    ConcurrentDictionary的用法
    Socket
    微信小程序(一)
    List常用几种方式
    c# 文件下载
    自定义身份验证
  • 原文地址:https://www.cnblogs.com/Dy1an/p/12300485.html
Copyright © 2020-2023  润新知