使用Frp实现内网穿透 前言 配置 安装为服务自启动

项目地址: https://gitee.com/mirrors/frp
项目文档: https://gofrp.org/docs/

具体使用参见文档,如下只配置实现远程桌面

根据文档说明下载压缩包,解压到一个目录,比如 M:GreenSoftfrp 作为客户端
在具有公网IP地址的服务器上上传一份,同样进行解压作为服务器端

配置

在服务器端的frps.ini中配置

[common]
bind_port = 7000

在客户端的frpc.ini中配置

[common]
server_addr = 服务器公网IP地址
server_port = 7000

; [ssh]
; type = tcp
; local_ip = 127.0.0.1
; local_port = 22
; remote_port = 6000

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6000

安装为服务自启动

  • 下载最新版的 Windows Service Wrapper 程序winsw

    然后,把它命名成你想要的名字(比如: "winsw.exe",当然,你也可以不改名)

  • 将重命名后的 winsw.exe 复制到 frp 的安装目录(我这里是 "M:GreenSoftfrp")

  • 在同一个目录下创建一个Windows Service Wrapper的XML配置文件,名称必须与第一步重命名时使用的名称一致(比如我这里是 "winsw.xml")

    文件内容如下:

    <service>
      <!-- 该服务的唯一标识 -->
      <id>frpc</id>
      <!-- 该服务的名称 -->
      <name>frp0.32.0-windows-amd64</name>
      <!-- 该服务的描述 -->
      <description>frpc客户端 这个服务用 frp 实现内网穿透</description>
      <!-- 要运行的程序路径 -->
      <executable>frpc.exe</executable>
      <!-- 携带的参数 -->
      <arguments>-c frpc.ini</arguments>
      <!-- 第一次启动失败 60秒重启 -->
      <onfailure action="restart" delay="60 sec"/>
      <!-- 第二次启动失败 120秒后重启 -->
      <onfailure action="restart" delay="120 sec"/>
      <!-- 日志模式 -->
      <logmode>append</logmode>
      <!-- 指定日志文件目录(相对于executable配置的路径) -->
      <logpath>logs</logpath>
    </service>
    
  • 命令行下执行以下命令,以便将其安装成Windows服务。

    M:GreenSoftfrp> winsw.exe install

    OK,至此,完工,确认一下:我的电脑 右键 -> 管理 -> 服务 -> 是否有了个 frp 服务呢?

  • 补充:

    Windows Servcie Wrapper的命令格式如下:

    # 安装服务
    
    CMD:> winsw.exe install
    
    # 卸载服务
    
    CMD:> winsw.exe uninstall