pt吧 关注:221,237贴子:11,572,200

【220510】frp教程-没有公网IP,该如何访问及管理内网服务

只看楼主收藏回复

如题,看到有吧友在问如何访问内网这个问题,用的也是移动宽带,情况和我类似,就写个帖子分享下我的经验,正好混点经验好升级。
首先介绍下背景:五一自己组了一台itx主机做nas,因为本身是个后端开发,平时用惯了Linux,在体验了truenas scale系统后觉得成品的nas系统对于我来说局限性太强,于是装了ubuntu server 22.04。软件和docker服务什么的都装好后(docker、samba、qbittorrent、transmission、jellyfin)就跑去ptt答了个题,通过后算是正式开始了我的pt之旅(当前,提前学习了很久pt相关的知识,打算入坑的小伙伴也不要心急,先把玩法和规则学习明白,不要浪费宝贵的账号/邀请)。
接着正文,因为我也是移动的大内网,要公网ip是不可能了。但我自己有几台国内的云服务器,所以可以用frp这类反向代理程序来实现我的需求,本帖主要介绍如何使用frp来进行ssh连接内网机器及访问内网web服务(比如qbittorrent、transmission的web控制台,远程看jellyfin的影片。。)
前提:
1.有一台公网云服务器(我买的腾讯云2核4G RAM 8M上行,3年200多,每年大概70块钱)
2.懂得服务器基本操作,能够往服务器上传文件,修改配置,启动软件。


IP属地:广东1楼2022-05-10 11:58回复
    二楼:致敬开源作者和伟大的开源精神,同时致敬pter们人人为我我为人人的分享精神。
    frp仓库地址:https://github.com/fatedier/frp
    frp中文文档:https://gofrp.org
    ps:这么看程序员和pter在某些方面竟有些不谋而合


    IP属地:广东2楼2022-05-10 11:58
    回复
      2025-07-14 07:41:08
      广告
      首先介绍下对吧友们来说最实用的访问web服务配置。
      我们要做的事情:
      1.下载自己系统对应的frp程序,下载地址:https://github.com/fatedier/frp/releases
      下载后解压可以看到的内容

      2.首先在云服务器上启动frps程序(frp的server端,需要修改一些配置,下面介绍)
      3.在我们的内网主机上启动frpc程序(frp的client端,需要修改一些配置,下面介绍)
      等内网主机和云服务器的frp程序建立了连接后,正常情况下我们就可以通过云服务器访问内网的web服务了,大概的原理如下图所示


      IP属地:广东3楼2022-05-10 12:00
      回复
        下面开始介绍配置文件的修改,我这里介绍最基本的配置,假设你没有域名和备案(估计大多数人都没有吧。。。)该如何操作。
        首先是云服务器上frps.ini的配置修改:
        ----------------------------------------------
        [common]
        bind_port = 7000 #frps的绑定端口,这个端口要在防火墙中打开,建议设置尽可能大避免被端口扫描
        vhost_http_port = 8080 # 虚拟主机端口,内网的web服务要通过这个端口访问,这个端口要在防火墙中打开,建议设置尽可能大避免被端口扫描
        authentication_method = token # 开启token校验机制,安全措施
        # auth token
        token = abcdefg # frpc的token必须和此token一致才能建立连接
        ----------------------------------------------
        然后就可以./frps -c ./frps.ini启动服务端了


        IP属地:广东4楼2022-05-10 12:02
        收起回复
          绑定


          IP属地:天津来自Android客户端5楼2022-05-10 12:03
          回复
            接下来是frpc.ini的配置
            ----------------------------------------------
            [common]
            server_addr = 你的云服务器公网ip
            server_port = 7000 # 和frps配置中的bind_port一致
            # auth token
            token = abcdefg # 和frps配置中的token一致
            [web]
            type = http
            local_port = 18881 # 你的内网服务端口,比如你的transmission服务端口是18881,那么这里就是18881
            custom_domains = 这里也填你的服务器公网ip
            ----------------------------------------------
            修改完成后可以在内网机器上使用./frpc -c ./frpc.ini启动客户端,即可和云服务器上的frps建立连接。这时候就可以通过服务器公网ip+vhost_http_port访问到内网的web服务了。


            IP属地:广东6楼2022-05-10 12:03
            回复
              如果你有已经备案的域名,还可以研究下frp子域名的配置,实现形如transmission.你的域名.com来访问内网transmission控制台的功能,这里我就不赘述了,可以参照详细配置文件进行操作。


              IP属地:广东7楼2022-05-10 12:06
              收起回复
                绑定,frp永远的神


                IP属地:广东来自Android客户端9楼2022-05-10 12:12
                回复
                  2025-07-14 07:35:08
                  广告
                  实现的效果




                  IP属地:广东10楼2022-05-10 12:13
                  回复
                    ssh的下午再更 先恰个饭


                    IP属地:广东11楼2022-05-10 12:14
                    回复
                      pt流量会走frp吧,和代,理一样,会被服务器带宽限制吗?


                      IP属地:四川来自Android客户端12楼2022-05-10 12:15
                      收起回复
                        frpc配置被吞了,补个图


                        IP属地:广东13楼2022-05-10 12:16
                        收起回复
                          我理解错了,是frp访问是吧,不是frp走pt


                          IP属地:四川来自Android客户端14楼2022-05-10 12:19
                          回复
                            技术贴 绑定先


                            IP属地:四川来自Android客户端15楼2022-05-10 13:05
                            收起回复
                              2025-07-14 07:29:08
                              广告
                              绑定


                              IP属地:江苏来自iPhone客户端16楼2022-05-10 13:06
                              收起回复