如何实现内网穿透?超详细FRP自建服务器配置指南

如何实现内网穿透?超详细FRP自建服务器配置指南

你是否经历过这些让你抓狂的“绝境”?

  • 场景一: 你人在咖啡馆,客户突然让你给他演示一下正在你家里电脑上运行的那个网站原型。你面露难色,只能尴尬地回复:“抱歉,等我回家再给您看。”
  • 场景二: 你在公司的办公室,突然需要一个昨天晚上忘在家中电脑D盘里的重要文件。你心急如焚,除了立刻打车回家,似乎别无他法。
  • 场景三: 你在度假,但公司服务器的一个小服务突然崩溃了,而能重启它的那台“跳板机”,IP地址只对你办公室的網絡开放。你在酒店里,只能对着笔记本电脑望洋兴叹。

这些“次元壁”,这些因为你不在“现场”而产生的物理隔绝,是不是让你觉得所谓的“远程办公”,总差了那么点意思?

如果我告诉你,有一种方法,可以让你在任何地方,用任何设备,都像拥有“空间跳跃”能力一样,瞬间“降临”到你家里或办公室的任何一台电脑面前,你会不会觉得这是科幻电影?

不,这不是科幻。这,就是FRP (Fast Reverse Proxy) 将要为你实现的“数字奇迹”。

今天,这篇深度指南,将手把手地,带你在你自己的云服务器上,搭建一个专属于你的、私密的、安全可靠的“空间跳跃基站”。从此,你将挣脱物理位置的束缚,真正实现“身在四海,掌控全局”的终极自由。


第一章:“外交豁免权”—— 用人话解读FRP的“魔法原理”

在我们开始搭建之前,你必须先理解FRP这门“魔法”的底层逻辑。

比喻一下:

  • 你家里或办公室的内部网络: 就像一个安保极其森严的、独立的**“私人国家”**。这个国家的“海关”(你的路由器/防火墙)默认拒绝任何没有“签证”的外部访客进入。所以,互联网上的其他人,根本无法直接找到并访问你国家里的任何一台电脑。
  • 你的云服务器 (VPS/CVM): 则是你在广阔的“国际公海”(互联网)上,建立的一座拥有公开坐标(公网IP)、谁都可以访问的**“常驻大使馆”**。
  • FRP是什么? FRP就是一套**“最高级别的加密外交协议”。它能让你在“私人国家”和“大使馆”之间,建立一条绝对安全、外人无法窃听的“外交隧道”**。

这条“外交隧道”是如何工作的? 它的天才之处,在于连接的“方向”是反向的

它不是由“大使馆”(服务器端)主动去连接你的“私人国家”(客户端),因为“海关”会拦截。恰恰相反,它是由你部署在“私人国家”内部的**“秘密特工”(frpc),主动、悄悄地,从内部,向“大使馆”里那位“大使”(frps)发起连接,并建立一条永久在线**的“加密通讯线路”。

现在,奇妙的事情发生了: 当一个外部访客(比如你的客户),想访问你“私人国家”里,你电脑上的网站时,他不需要硬闯你家的“海关”。他只需要彬彬有礼地,来到你在“国际公海”上的“大使馆”门口,告诉“大使”(frps):“你好,我想拜访一下你国内的‘Web开发部’。”

“大使”(frps)收到请求后,会立刻通过那条内部的“加密外交隧道”,通知你国内的“秘密特工”(frpc):“有客来访,目标是Web开发部,请立刻建立临时接待通道。”

于是,frpc就会为你打通一条临时、安全的路径,让这位访客,能绕过你家所有的“海关”,直接与你电脑上的那个网站,进行对话。

这就是“内网穿透”的全部奥秘:通过一台拥有公网IP的服务器作为“中转站”,将内部网络的服务,安全地暴露给外部世界。

第二章:“大使馆”的建造 —— 服务器端(frps)部署指南

好了,理论学习结束。现在,让我们先去那片“国际公海”,把我们的“大使馆”给建起来。

你需要: 一台任何配置的、拥有公网IP的Linux云服务器。

第一步:下载并解压“大使馆建筑材料包”

  1. SSH登录你的云服务器。
  2. 前往FRP在GitHub的官方发布页面,找到最新版本的、适用于linux_amd64的压缩包,复制它的下载链接。或者,直接用下面这个(以0.45.0版本为例): wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
  3. 解压这个“材料包”: tar -xzvf frp_0.45.0_linux_amd64.tar.gz
  4. 为了方便管理,我们可以把它重命名并移动一下: mv frp_0.45.0_linux_amd64 /usr/local/frp

第二步:撰写“大使馆”的“工作章程” (frps.ini)

进入我们的“大使馆”目录: cd /usr/local/frp

这里面有一堆文件,我们只需要关心那个叫frps.ini的。这是“大使”(frps)的工作手册。我们来编辑它: nano frps.ini

请将里面的内容,修改成下面这个“精简版”:

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 你的后台密码
token = 你的专属认证密钥

我们来逐行解读这份“工作章程”:

  • bind_port = 7000:这是“大使馆”的“总机号码”。所有的“秘密特工”,都将通过这个端口,来和“大使”建立连接。
  • dashboard_port = 7500:这是一个极其有用的“监控室”的端口。我们可以通过http://你的服务器IP:7500,来访问一个实时的后台仪表盘。
  • dashboard_user = admindashboard_pwd = 你的后台密码:这是进入“监控室”的用户名和密码。请务必把你的后台密码换成一个复杂的密码!
  • token = 你的专属认证密钥极其重要! 这是你整个“外交网络”的“接头暗号”。只有拿着这个“暗号”的“秘密特工”,才会被“大使馆”承认。请把它换成一个足够长、足够随机的字符串!

保存并退出 (Ctrl+X -> Y -> Enter)。

第三步:让“大使”正式上岗,并保证他“永不掉线”

  1. 我们可以先手动测试一下“大使”能否正常工作: ./frps -c ./frps.ini 如果屏幕上没有报错,说明一切正常。按Ctrl+C退出。
  2. 现在,我们要为他建立一个“永久编制”,让他能7×24小时自动上岗,并且在服务器重启后也能自动“复活”。我们要用到systemdsudo nano /etc/systemd/system/frps.service
  3. 将下面这份“任命书”,完整地粘贴进去:

[Unit]
Description = FRP Server
After = network.target

[Service]
Type = simple
User = nobody
Restart = on-failure
RestartSec = 5s
ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.ini

[Install]
WantedBy = multi-user.target

4.保存退出。然后,执行以下三条命令,正式“任命”并启动这位“大使”: sudo systemctl daemon-reload (让系统读取新的任命书) sudo systemctl enable frps (设置开机自启) sudo systemctl start frps (立刻上岗)

    最后,别忘了去你的云服务商“安全组”,以及服务器内部的防火墙(比如ufw),放行我们用到的70007500这两个TCP端口!

    至此,你的“大使馆”,已经正式在“国际公海”上,挂牌营业了!

    第三章:“秘密特工”的派遣 —— 客户端(frpc)配置实战

    “大使馆”建好了,现在,我们要向我们的“私人国家”(家里或办公室的电脑)里,派遣“秘密特工”(frpc)了。

    frpcfrps,都在我们刚才下载的那个“材料包”里。你需要根据你家里电脑的操作系统,去GitHub上下载对应的版本(比如windows_amd64)。

    下载并解压后,我们只需要关心那个frpc.ini文件。这是“秘密特工”的“行动手册”。

    第一步:配置“行动手册” (frpc.ini)

    用记事本打开frpc.ini,它的基础配置如下:

    [common]
    server_addr = 你的服务器公网IP
    server_port = 7000
    token = 你在frps.ini里设置的那个专属认证密钥

    这三行,是在告诉“特工”:“你的‘大使馆’,地址是这个,总机号码是7000,接头暗号是这个。现在,去联系他!”

    第二步:定义具体的“秘密任务”

    [common]下面,就是我们要定义的各种“穿透任务”了。我给你举三个最经典的例子:

    任务一:随时随地“魂穿”回家里的Windows电脑 (远程桌面)

    你想在任何地方,都能远程控制你家那台性能强大的台式机?在frpc.ini里,追加以下内容:

    [home-rdp]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 3389
    remote_port = 6001

    • 解读:
      • [home-rdp]是任务代号,可以随便起。
      • type = tcp:我们要穿透的是TCP协议。
      • local_ip = 127.0.0.1local_port = 3389:告诉“特工”,你在“国内”的目标,是本机3389端口(Windows远程桌面的默认端口)。
      • remote_port = 6001:这是最关键的!它是在告诉“大使馆”:“请在‘大使馆’,另外开一个门牌号为6001的接待室。所有访问这个接待室的客人,都通过外交隧道,转到我国内的3389端口来。”

    任务二:让客户预览你本地电脑上的网站

    [my-web-demo]
    type = http
    local_port = 8080
    custom_domains = dev.yourdomain.com

    • 解读:
      • type = http:我们要穿透的是网站服务。
      • local_port = 8080:你在本地电脑上,用http://localhost:8080来预览你的网站。
      • custom_domains = dev.yourdomain.com:你需要先把dev.yourdomain.com这个域名,解析到你的云服务器IP。然后,FRP就会神奇地,把所有访问这个域名的请求,都通过隧道,转发到你本地的localhost:8080上!

    任务三:SSH到你藏在路由器后面的树莓派

    [pi-ssh]
    type = tcp
    local_ip = 192.168.1.100 # 假设这是你树莓派的内网IP
    local_port = 22
    remote_port = 6002

    • 解读: 和远程桌面类似,但这次,我们把“大使馆”的6002端口,映射到了你内网里,IP为192.168.1.100的这台设备的22端口上。

    第三步:启动“特工”!

    在你家里的电脑上,打开命令行(CMD或PowerShell),进入frp的目录,执行: ./frpc.exe -c ./frpc.ini

    你会看到“特工”成功与“大使馆”建立连接的日志。现在,这个CMD窗口不能关闭,它就是“外交隧道”本身!

    第四章:享受“空间跳跃”的快感

    • 想远程桌面回家? 在你公司电脑上,打开远程桌面,地址栏里不再输入家里的IP(你也访问不到),而是输入**你的云服务器公网IP:6001**!然后,你就会惊喜地发现,你看到了家里电脑的登录界面!
    • 想给客户看Demo? 直接把http://dev.yourdomain.com这个地址,发给你的客户。他就能在地球的另一端,实时地,看到你在自己笔记本上,刚刚修改的一行代码的效果!
    • 想SSH到树莓派? 在任何地方,打开SSH工具,执行:ssh pi_user@你的云服务器公IP -p 6002

    从这一刻起,你世界里的“网络边界”,已经被彻底打破了。

    你搭建的,不仅仅是一个“内网穿透”服务。你搭建的,是一套属于你自己的、不受任何限制的“全球神经元连接网络”。你的所有设备,无论身处何方,都像连接在你大脑之下的神经末梢一样,触手可及。

    这,就是技术赋予我们的,最极致的“自由”。

    知识库

    宝塔面板搭建RustDesk教程:告别命令行,一键拥有私有远程桌面

    2025-9-23 16:49:33

    知识库

    Nginx Proxy Manager教程:轻松实现反向代理与SSL证书自动化

    2025-9-24 10:53:05

    0 条回复 A文章作者 M管理员
      暂无讨论,说说你的看法吧