frp实现内网穿透远程桌面 | 我的日常分享

frp实现内网穿透远程桌面

内网穿透工具—frp 实现外网访问远程桌面

🍊一、准备

  1. 一个具有公网ip的服务器
  2. frp工具包 github下载
    我的服务器是64位的Centos 7,电脑是win10,所以选择图片中的两个
    图片

🍭二、服务器端配置

  1. 将文件上传至服务器,或者直接在服务器上下载
  2. 解压文件
  3. 文件中只需要保留这四个文件
    图片
  4. 配置frps.ini,具体可查看官方文档
    下面是我写的配置样例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    # 注释只能放在配置代码上方,不能并排,否则无法识别代码
    [common]
    # 服务端口(自定)
    bind_port = 7000
    bind_udp_port = 7001
    # 服务地址 如果运行报错就把它设置为0.0.0.0 不用设置为服务器公网ip
    bind_addr = 0.0.0.0
    # 连接密码(自定)
    token = 460d0ea5-5d92-42fe-a42f-09feb86d55ec
    # 日志地址
    #log_file = /www/wwwroot/frp/frps.log
    # 日志文件保留天数
    log_max_days = 100
    # [Dashboard, 监控]
    # 启用 Dashboard 监听的本地地址
    dashboard_addr = 0.0.0.0
    # 监控面板访问端口
    dashboard_port = 7002

    # 监控面板HTTP BasicAuth 用户名
    dashboard_user = jiaxiaoyu
    # 监控面板HTTP BasicAuth 密码
    dashboard_pwd = jia599599
    # 是否提供 Prometheus 监控接口
    enable_prometheus = true
    # 只接受启用了 TLS 的客户端连接
    tls_only= false
  5. 修改防火墙,打开相对应的端口,如果使用的为宝塔面板,在某云控制台打开了防火墙后,还需要在宝塔面板中的安全选项中再打开一遍对应的端口。
  6. 启动服务。切换到刚才解压的文件夹中,执行下面命令,启动frps
    1
    ./frps -c ./frps.ini
    显示这样就代表成功了,接下来配置客户端
    图片

🌈三、客户端配置

  1. 将下载的文件解压,只用保留如图所示文件,其它文件位服务端的可删除
    图片
  2. 配置frpc.ini文件,具体可查看官方文档
    下面是我写的配置样例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    [common]
    # 服务器公网ip
    server_addr = xxx.xxx.xxx.xxx
    # 服务端口,与服务端bind_port相同
    server_port = 7000
    #连接密码,与服务端token相同
    token =460d0ea5-5d92-42fe-a42f-09feb86d55ec
    # TLS加密协议
    tls_enable = true

    # 启用 AdminUI 监听的本地地址
    admin_addr = 0.0.0.0
    # 启用 AdminUI 监听的本地端口
    admin_port = 7003
    # HTTP BasicAuth 用户名
    admin_user = jiaxiaoyu
    # HTTP BasicAuth 密码
    admin_pwd = jia599599

    # 用户名称(自定)
    [JiaxiaoyuMI_3389_TCP]
    # 协议
    type = tcp
    # 本机IP
    local_ip = 192.168.31.150
    # 本机的远程连接端口
    local_port = 3389
    # 远程连接映射的端口(自定)
    # 别忘了加入防火墙规则中,操作同上一配置文件
    remote_port = 8888

    # 用户名称(自定)
    [JiaxiaoyuMI_3389_UDP]
    # 协议
    type = udp
    # 本机IP
    local_ip = 192.168.31.150
    # 本机的远程连接端口
    local_port = 3389
    # 远程连接映射的端口(自定)
    # 别忘了加入防火墙规则中,操作同上一配置文件
    remote_port = 8888

    # 用户名称(自定)
    [JiaxiaoyuMI__8080_TDP]
    # 协议
    type = tcp
    # 本机IP
    local_ip = 192.168.31.150
    # 本机的远程连接端口
    local_port = 8080
    # 远程连接映射的端口(自定)
    # 别忘了加入防火墙规则中,操作同上一配饰文件
    remote_port = 8088
  3. 启动服务。打开cmd或其它命令行,执行下面命令
    1
    frpc.exe -c frpc.ini
    显示如下就代表启动成功了
    图片

四、完成

  1. 打开win10远程桌面使用服务器ip+映射端口连接,显示如下就成功了
    图片

五、后记

  1. 服务端如果需要在后台长期运行,建议结合其他工具使用,例如 systemdsupervisor

  2. 服务端运行后,可使用”Ctrl+Z”挂起进程或使用如下nohup命令在系统后台不挂断地运行命令

    1
    nohup ./frps -c ./frps.ini &

    图片
    可用crontab创建一个计划任务定时执行上面的命令,防止进程被清理。
    使用jobs命令查看当前有多少在后台运行的命令

    1
    2
    jobs
    jobs -l #可查看进程号

    图片

  3. 停止frp进程。使用如下命令查看frp进程号

    1
    ps -aux|grep frp| grep -v grep

    图片
    然后使用如下命令停止进程:

    1
    kill -9 进程号

    图片
    kill -9 命令相关

  1. 通过AlwaysUp实现frpc.exe在windows系统自动启动挂在后台运行。(推荐使用这个!!)
    AlwaysUp下载
    使用说明:
    图片
    破解说明:
    图片
    图片
    图片

  2. win10挂起frp可使用bash命令行,类似linux,使用nohup命令,在后面加&。但是bash窗口不能关闭,无法实现后台运行,推荐方法4。
    图片
    图片
    图片

五、效果预览

可在任何网络任何支持windows桌面远程的软件中使用远程功能。

图片

  1. 在ipad中使用
    图片
    图片

  2. 在手机中使用
    图片
    图片