告别内网限制!实现远程访问本地服务,最主要免费、高效、稳定

FRP(Fast Reverse Proxy)是一款优秀的内网穿透工具,能够帮助我们轻松地搭建内网穿透服务,实现本地文件的外网访问, 支持 TCP、UDP、HTTP、HTTPS 等多种协议。e1220a00b9e6336109ad4e0d0d161261

部署过程包含两部分:

  1. 1. FRP 服务器端 (frps): 运行在一台具有公网 IP 地址的机器上(通常是云服务器 VPS)。
  2. 2. FRP 客户端 (frpc): 运行在你本地的 Windows 机器上,也就是运行着你想穿透的那个应用服务的机器。

假设:

  • • 你已经有一台具有公网 IP 地址的服务器(比如 Linux VPS),其公网 IP 为 your_server_public_ip
  • • 你本地 Windows 机器上有一个应用服务正在运行,监听在某个端口(例如,一个 Web 服务监听在 127.0.0.1:8080)。
  • • 你想通过公网访问这个本地服务。

步骤一:在公网服务器上部署 FRP 服务器端 (frps)

(通常服务器是 Linux 系统,这里以 Linux 为例。如果你需要在 Windows 服务器上部署 frps,过程类似,只是文件名和运行方式略有不同)

  1. 1. 下载 FRP:
    • • 访问 FRP 的 GitHub Releases 页面: https://github.com/fatedier/frp/releases
    • • 根据你的服务器 操作系统 和 CPU 架构 (通常是 linux_amd64) 下载最新的 frp_..._linux_amd64.tar.gz 文件。
    • • 例如,使用 wget 下载 (版本号可能需要更新):

      wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
  2. 2. 解压:

    tar -zxvf frp_0.58.1_linux_amd64.tar.gz
  3. 3. 配置 frps.ini (服务器配置文件):
    • • 进入解压后的目录,例如 cd frp_0.58.1_linux_amd64
    • • 编辑 frps.ini 文件(如果不存在则创建,但通常解压后会有一个 frps.toml 或 frps.ini 示例,新版本推荐 frps.toml,这里用 .ini 举例,语法类似)。
    • • 一个 最基本 的配置如下:

      [common]
      # frps 服务端监听的端口,用于接收 frpc 客户端的连接
      bind_port = 7000
      # 设置一个身份验证令牌,frpc 连接时需要提供此令牌
      token = YourSecretToken123
      
      # (可选) Dashboard 仪表盘,方便查看 frp 状态
      dashboard_port = 7500
      dashboard_user = admin
      dashboard_pwd = admin_password
    • • 重要参数说明:
      • • bind_port: frps 和 frpc 之间通信的端口,必须在服务器防火墙上允许外部访问。
      • • token: 用于身份验证,防止未经授权的 frpc 连接。请务必修改为你自己的复杂密码
      • • dashboard_port: 如果启用,这个端口也需要在服务器防火墙上放行,但建议只允许特定 IP 访问或配置反向代理增加安全性。
      • • 如果你想通过域名(如 http://web.yourdomain.com)访问 HTTP 服务,还需要配置 vhost_http_port = 80 和/或 vhost_https_port = 443,并在防火墙放行这些端口。
  4. 4. 防火墙设置:
    • • 确保你的服务器防火墙(如 ufwfirewalld) 以及云服务商的安全组规则允许 入站 流量访问你配置的 bind_port (例如 7000) 和 dashboard_port (例如 7500)。
    • • 如果配置了 vhost_http_port 或 vhost_https_port,也需要放行这些端口(通常是 80 和 443)。
    • • 示例 (UFW on Ubuntu):

      sudo ufw allow 7000/tcp
      sudo ufw allow 7500/tcp # 如果启用了 Dashboard
      # sudo ufw allow 80/tcp  # 如果使用 vhost_http_port
      # sudo ufw allow 443/tcp # 如果使用 vhost_https_port
      sudo ufw enable
      sudo ufw status
  5. 5. 运行 frps:
    • • 前台运行 (用于测试):

      ./frps -c ./frps.ini

      按 Ctrl+C 停止。

    • • 后台运行 (推荐):

      nohup ./frps -c ./frps.ini > frps.log 2>&1 &

      这会在后台运行 frps,并将日志输出到 frps.log 文件。

    • • 使用 systemd (更健壮的方式):
      可以创建一个 systemd service 文件来管理 frps 服务,实现开机自启和自动重启。具体方法可以搜索 "frps systemd service"。

步骤二:在本地 Windows 机器上部署 FRP 客户端 (frpc)

  1. 1. 下载 FRP:
    • • 再次访问 FRP 的 GitHub Releases 页面: https://github.com/fatedier/frp/releases
    • • 这次根据你的 Windows 系统和 CPU 架构 (通常是 windows_amd64) 下载 frp_..._windows_amd64.zip 文件。
  2. 2. 解压:
    • • 在你本地 Windows 机器上找一个合适的位置(例如 C:\frp)解压下载的 .zip 文件。你会看到 frpc.exe 和 frpc.ini (或 frpc.toml) 等文件。
  3. 3. 配置 frpc.ini (客户端配置文件):
    • • 使用文本编辑器(如 Notepad++ 或 VS Code)打开解压目录中的 frpc.ini 文件。
    • • 编辑配置,指定要连接的服务器和要穿透的本地服务。
    • • 一个 示例配置 如下 (假设穿透本地 8080 端口的 Web 服务和 RDP 远程桌面):

      [common]
      # frps 服务器的公网 IP 地址
      server_addr = your_server_public_ip
      # frps 服务器监听的端口 (必须与 frps.ini 中的 bind_port 一致)
      server_port = 7000
      # frps 服务器设置的身份验证令牌 (必须与 frps.ini 中的 token 一致)
      token = YourSecretToken123
      
      # --- 定义第一个要穿透的服务:本地 Web 服务 ---
      [web_service_http]
      # 类型:tcp, udp, http, https, stcp, xtcp 等
      type = tcp
      # 本地服务的 IP 地址 (通常是 127.0.0.1)
      local_ip = 127.0.0.1
      # 本地服务的端口号
      local_port = 8080
      # 在 frps 服务器上监听的端口,外部通过这个端口访问你的本地服务
      # 这个端口必须是你的 frps 服务器上未被占用的端口
      remote_port = 8081
      # (可选) 如果 frps 配置了 subdomain_host,可以用 http 类型和 subdomain
      # type = http
      # local_port = 8080
      # subdomain = mylocalweb # 访问地址将是 http://mylocalweb.yourdomain.com (需配置 DNS)
      
      # --- 定义第二个要穿透的服务:Windows 远程桌面 (RDP) ---
      [windows_rdp]
      type = tcp
      local_ip = 127.0.0.1
      # RDP 默认端口是 3389
      local_port = 3389
      # 在 frps 服务器上为 RDP 分配一个端口
      remote_port = 7001
    • • 重要参数说明:
      • • server_addr: 你的公网服务器 IP。
      • • server_port: 必须和服务器 frps.ini 中的 bind_port 相同。
      • • token: 必须和服务器 frps.ini 中的 token 相同。
      • • [<service_name>]: 每个方括号定义一个要穿透的服务,名称自定义(如 web_service_httpwindows_rdp)。
      • • type: 服务的协议类型。tcp 和 udp 是最通用的,会直接转发端口。http 和 https 通常用于 Web 服务,可以配合 subdomain 或 custom_domains 使用域名访问。
      • • local_iplocal_port: 你本地服务的监听地址和端口。
      • • remote_port公网服务器上用于接收外部访问的端口。外部用户将通过 your_server_public_ip:remote_port 来访问你的本地服务。确保这个端口在服务器防火墙上也是放行的!
      • • subdomain / custom_domains: 如果使用 http 或 https 类型,并且服务器配置了 vhost_http_port/vhost_https_port 和 subdomain_host,可以用这些参数通过域名访问,而不需要指定 remote_port。这需要你将域名或子域名解析到你的服务器 IP。
  4. 4. 防火墙设置 (Windows):
    • • 通常 Windows 防火墙会询问是否允许 frpc.exe 访问网络,选择“允许”。
    • • 确保 Windows 防火墙没有阻止你的本地应用服务 (例如,端口 8080 或 3389) 被 frpc.exe 访问(通常 127.0.0.1 之间的访问是被允许的)。
  5. 5. 运行 frpc:
    • • 打开 Windows 的命令提示符 (cmd) 或 PowerShell。
    • • 使用 cd 命令切换到你存放 frpc.exe 和 frpc.ini 的目录。例如:

      cd C:\frp
    • • 前台运行 (用于测试):

      .\frpc.exe -c .\frpc.ini

      观察输出。如果看到类似 "login to server success" 和 "start proxy success" 的信息,表示连接和代理设置成功。保持这个窗口打开,服务就在运行中。关闭窗口则停止 frpc。

    • • 后台运行/设置为 Windows 服务 (推荐):
      为了让 frpc 在后台稳定运行,并且开机自启,最好将其设置为 Windows 服务。推荐使用第三方工具 NSSM (Non-Sucking Service Manager)
      1. 1. 下载 NSSM: https://nssm.cc/download
      2. 2. 解压 NSSM,找到对应你系统架构(32位或64位)的 nssm.exe
      3. 3. 以 管理员身份 打开命令提示符 (cmd)。
      4. 4. 切换到 NSSM 所在的目录。
      5. 5. 执行安装命令: nssm install frpc
      6. 6. 会弹出一个 NSSM 服务安装界面:
        • • Path: 点击 ... 按钮,选择你的 frpc.exe 文件路径 (例如 C:\frp\frpc.exe)。
        • • Startup directory: 它通常会自动填充为 frpc.exe 所在的目录 (例如 C:\frp)。
        • • Arguments: 输入 -c frpc.ini (注意 frpc.ini 是相对于 Startup directory 的路径,如果它们在同一目录,这样写即可)。
        • • (可选) 在 I/O 标签页,可以设置日志文件路径,方便排查问题。
        • • 点击 Install service 按钮。
      7. 7. 安装成功后,启动服务: nssm start frpc 或在 Windows 服务管理器 (services.msc) 中找到名为 frpc 的服务,手动启动它,并可以设置其启动类型为“自动”。
      8. 8. 管理服务的常用 NSSM 命令: nssm start frpcnssm stop frpcnssm restart frpcnssm status frpcnssm edit frpcnssm remove frpc

步骤三:测试访问

  1. 1. 确保 frps 在服务器上运行,并且 frpc 在你的 Windows 电脑上运行且连接成功。
  2. 2. 根据你的 frpc.ini 配置进行访问:
    • • 对于 [web_service_http] (TCP 类型): 在任何可以访问互联网的设备上,打开浏览器,访问 http://your_server_public_ip:8081 (使用你在 remote_port 配置的端口)。你应该能看到你本地 127.0.0.1:8080 上的 Web 服务内容。
    • • 对于 [windows_rdp]: 在另一台电脑上打开远程桌面连接工具 (mstsc.exe),输入 your_server_public_ip:7001 (使用你在 remote_port 配置的端口),然后尝试连接。你应该会看到 Windows 登录界面。
    • • 如果使用了 subdomain (HTTP 类型): 确保你的子域名(如 mylocalweb.yourdomain.com)已经通过 DNS 解析指向了 your_server_public_ip。然后直接在浏览器中访问 http://mylocalweb.yourdomain.com

安全注意事项:

  • • 使用强 Token: frps.ini 和 frpc.ini 中的 token 一定要设置复杂且保密。
  • • 防火墙精细化: 只开放必要的端口。对于 remote_port,只开放你确实需要从公网访问的那些。如果可能,限制访问 remote_port 的源 IP 地址。
  • • Dashboard 安全: 如果启用 Dashboard,务必修改默认用户名密码,并考虑使用 Nginx/Caddy 等反向代理增加 HTTPS 和访问控制。
  • • HTTPS: 对于暴露的 Web 服务,强烈建议配置 HTTPS 加密。可以在 frps 端使用 type=httpsplugin=https2http 等方式,或者在本地服务就启用 HTTPS 并使用 type=https 或 type=tcp 转发。
  • • STCP (Secret TCP): 对于像 RDP 或 SSH 这样敏感的服务,可以考虑使用 type = stcp。这需要在访问端也运行一个 frpc 客户端,提供更高的安全性,因为它不会在服务器上直接暴露端口。
  • • 本地服务安全: FRP 只是打通了网络路径,确保你本地的应用服务本身是安全的(例如,有身份验证、及时更新补丁)。
  • • 日志监控: 定期检查 frps 和 frpc 的日志,关注异常连接或错误。

按照以上步骤操作,你应该就能成功地在 Windows 上使用 FRP 将你的本地服务穿透到公网了。如果在过程中遇到问题,请仔细检查配置文件、防火墙设置以及 frps 和 frpc 的运行日志。

本文内容来源于公开网络,出于传递信息之目的整理发布。原文版权归原作者所有,若涉及侵权请先提供版权后联系我们删除

(0)
WP之家WP之家
上一篇 2025年4月2日 下午4:48
下一篇 2025年4月3日

相关推荐

  • 《洛克王国》翡翠采集活动玩法攻略分享

    在洛克王国这款手游中,很多玩家都想知道翡翠采集活动怎么玩?下面一起来看看吧! 翡翠采集 为了能更好得发挥出自身能力,翡翠皇后希望在权杖上缀满上等的翡翠。帮助翡翠皇后采集翡翠,完成活动即可获得宠物:翡翠…

    6天前
  • 国家禁止赌博,为什么棋牌室能正常营业?

    国家在赌博这方面确实是禁止的,但它有一定的规定。例如,参赌人员的数量及赌资的数额,都需要达到一定的量才构成赌博。就全国各地的规定来讲,赌资一般都在1000元以上,当然有些地方也规定在500元以上,才算赌博。…

    教程资讯 2025年3月29日
  • 《微信》乐迷圈位置在哪里

    微信乐迷圈是一个专为音乐爱好者打造的社交平台,那么应该怎么打开呢?具体位置在哪里?下面一起来看看吧! 1、打开微信,下拉,点击进入音乐。 2、点击进入乐迷圈。 3、即可查看乐迷圈内容,点击右上角加号,还可…

    6天前
  • 《微博》按日期怎么查找之前的微博

    《微博》按日期怎么查找之前的微博,查看别人的微博时,我们是无法直接按照时间日期来查找的,这个时候我们就需要进入网页版,然后就能按照指定的日期进行筛选了,微博怎么按日期查找以前的微博?wp之家小编整理了…

    6天前
  • 夸克app阅读模式如何选章节

    夸克app阅读模式如何选章节,一起来看看吧。 1、使用夸克app搜索需要阅读的小说,点击任意一个链接进入章节阅读; 2、进入小说章节之后,如果该网页支持阅读模式,在顶部则会有提示,点击【立即进入】进入开启阅读…

    6天前
  • 收录后不出词解决办法-个人建议慎用

    最近刷到了很多人说收录后未出词??其实最简单的解决办法就是? ?修改站内关键词布局 看下图??原来指数863的没出关键词排名? ?一直查不到排名 刚刚修改了一下站内布局后 投诉了快照? ?一小时就来结果了? ? 初始排名直…

    2025年3月29日
  • chatGPT4.0来了!(附chatGPT使用教程)

    大家好,我是羽课君。果然,只有魔法能够打败魔法!OpenAI在当地时间3月15号官宣了gpt4.0。羽课君只能感叹:速度是真的快! 这是GPT系列里面最新迭代出来的产品,依然为chatGPT和NEW BING这些应用程序提供使用支撑…

    教程资讯 2025年3月29日
  • 脸书facebook怎么注册?(史上最新创建账号教程)

    Facebook(脸书)为全球最大的社交软件之一,在全球拥有庞大的用户数量。有很多网友想要使用脸书,尤其是那些从事外贸和偶像化的网民。然而,在国内使用过程中要解决许多问题。尤其是注册,很多网友有幸注册,也很…

    2025年3月29日