本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

转载地址:新手入门 - 详解 frp 内网穿透 frpc.ini 配置 - 思有云 - IOIOX

前言

本站关于 frp 内网穿透的相关教程已经非常丰富了,但也有很多新手朋友在配置时遇到各种问题,大多数都是因为客户端 frpc.ini 的配置有误导致失败.本文针对新手用户详细解释下 frpc.ini 的配置方法.

本文纯属干货,请自备瓜子饮料,慢慢食用!


客户端frpc

frpc 为 frp 内网穿透服务的客户端,可以安装到家庭内网中的支持的任意设备中,例如安装到路由器,群晖NAS,Linux服务器或者 docker 容器.安装好客户端后,可以配置整个内网中任意设备的端口穿透服务.简单来说,你可以在路由器上安装配置 frpc ,为路由器提供管理页面穿透,为群晖NAS提供DSM管理页面穿透,为群晖内各种服务提供穿透,还可以给内网各种服务器的SSH端口提供穿透.

推荐 frpc 安装在7*24小时在线,并且性能较强,较稳定的设备上,首推群晖 docker ,其次为搭载 OpenWrt 固件的软路由上.

客户端 frpc 安装教程汇总

配置frpc.ini

先分享一个标准简单的frpc.ini配置示例以供参考:

[common]
server_addr = free.frp.ioiox.com
server_port = 7007
token = www.ioiox.com
# 以上为frp服务器信息# 以下为本地内网客户端信息# 群晖DS1815+管理页面
[DS1815_DSM_HTTP]
type = http
local_ip = 192.168.1.2
local_port = 5000
custom_domain = nas.ioiox.com[DS1815_DSM_HTTPS]
type = https
local_ip = 192.168.1.2
local_port = 5001
custom_domain = nas.ioiox.com# 群晖Drive 桌面客户端
[DS1815_Drive_Desktop]
type = tcp
local_ip = 192.168.1.2
local_port = 6690
remote_port = 46690
custom_domain = drive.ioiox.com

服务器信息

服务器信息分别为服务器地址,端口Token.示例中的信息是本站提供的免费服务器信息,正确的填写即可正常使用.

[common]
server_addr = free.frp.ioiox.com
server_port = 7007
token = www.ioiox.com

HTTP/HTTPS配置

以上文示例的第一条群晖DSM管理页面为例.

[DS1815_DSM_HTTP]

自定义穿透服务名,命名规则必须唯一,不能和本地以及服务器上所有用户的服务名重复,建议取复杂的名字,或者在名字后加上随机字符例如类似 [DSM_HTTP_123hyTgfDG].

type = http

type即穿透类型一般分为HTTP,HTTPSTCP三种,其中HTTPHTTPS是作为Web网站穿透服务,而TCP一般用于其他服务连接使用,比如Linux服务器的SSH登陆,Windows的3389远程桌面,等无需使用浏览器访问的场景.

local_ip = 192.168.1.2

local_ip即本地设备IP为需要穿透的服务或者设备的内网IP地址.例如群晖NAS的内网IP为192.168.1.2

local_port = 5000

local_port即本地服务端口,也是需要穿透的服务端口,当上文type =的值为http时,此处的本地端口应对应为设备或服务的HTTP默认端口.例如群晖DSM的默认HTTP端口为5000.你可以尝试在浏览器输入http://192.168.1.2:5000来检查是否是你需要穿透的服务页面.

常规情况下,frp 服务器端默认定义了 http 和 https 的服务端口为 80/443,所以配置 http 和 https 是无需配置 remote_port 远程端口信息.

custom_domain = nas.ioiox.com

custom_domain即自定义域名,需为此服务准备一个域名,并配置CNAME指向frp服务器地址.例如为群晖DSM管理界面分配一个 nas.ioiox.com 的二级域名.

多数情况下都是使用 custom_domain ,当 frp服务器frps.ini 中配置了 subdomain_host 参数,并为所有用户提供了子域名服务.那么此时可以使用 subdomain 参数,其参数值应 仅为主机头 .
例如:服务器提供了 frp.com 的泛域名服务,那么设置 subdomain = nas 就可以使用 nas.frp.com 来穿透本条服务,当然主机头也是唯一性的,先到先得.
此种配置多数用于 自建frps服务器 ,方便自己使用一个域名的泛域名来配置穿透.

使用 HTTP 和 HTTPS 协议时,每一条穿透配置必须至少要有 custom_domain 和 subdomain 中的任意一个域名参数.否则会出现 custom_domains and subdomain should set at least one of them 错误提示.而 TCP 协议可无需配置域名,直接使用 frp 服务器的域名或者IP.

TCP端口配置

常规情况下内网穿透服务器一般也会提供除了80和443端口以外的其他TCP端口,但服务器端是不支持80/443以外的TCP端口复用的.例如以下最常见的群晖Drive桌面客户端的TCP端口6690.

[DS1815_Drive_Desktop]
type = tcp
local_ip = 192.168.1.2
local_port = 6690
remote_port = 46690
custom_domain = drive.ioiox.com

type =类型为tcp协议时,需要增加remote_port =远程端口参数,由于每台服务器只有一个6690端口,所以此端口大有可能被第一个使用此端口的用户占用,此时需要自定义一个没有使用的端口,服务器TCP端口池常规会开放 4000-50000 之间的端口,可以在此之间选择任意未被使用的端口来使用穿透.例如46690端口.PC和macOS客户端登陆群晖 Drive 时,域名后加上46690即可连接到你的服务器.

目前只能靠尝试修改remote_port =的端口号去登陆验证端口是否被占用,如果你使用了6690,然后登陆Drive时提示账号密码错误,那肯定是6690端口已经被其他用户的群晖Drive占用,此时你登陆的是他的服务器,自然是提示账号密码错误.请更换remote_port远程端口直到可以登陆到你的群晖即可.

域名复用

名词解释:复用是指信道复用技术,对于本文可以简单理解为重复使用.

HTTP/HTTPS 域名复用

上文提到http/https80/443端口是支持复用的,各用户都穿透了内网的网站到这台服务器的80/443端口,当服务器收到80/443端口的网站访问请求时,frp服务器端会根据访问的域名来识别,是具体访问哪位用户的内网网站.所以配置http/https的穿透时,域名是不可复用的.

使用http/https穿透时,一个域名可以分别配置http和https两条穿透记录,此后无法复用.

以下为错误示范 - 域名复用
图中同一个域名nas.ioiox.com被配置过两次http协议,分别穿透了192.168.1.2 的 DS1815+192.168.1.3 的 DS218+,这种情况下frpc客户端是无法生效,因为当你访问nas.ioiox.com时,服务器是不知道该转发给哪一台群晖的管理界面.

TCP 协议域名复用

TCP端口穿透时,其域名可以复用,使用任何解析到此服务器的域名都可以,即使是使用服务器地址free.frp.ioiox.com也都可以,因为TCP端口的不复用,使得你穿透的remote_port 远程端口就是唯一供你使用的端口,无需 frp 服务器通过域名来识别请求,服务器仅凭访问的端口号就知道该转发给哪位用户.


结语

本文是针对 frp 内网穿透的新手用户,希望能帮助到大家能够更快的理解端口,转发,穿透等基础原理,然后可以举一反三的配置更多适合自己的服务.更多更高级的 frp 配置方法可以参考 frp 项目官方文档,或者加入本站TG群组讨论:

新手入门 - 详解 frp 内网穿透 frpc.ini 配置相关推荐

  1. frp内网穿透并搭建配置使用

    一文搞懂frp内网穿透并搭建配置使用 原文链接 ->https://developer.aliyun.com/article/853534?spm=ding_open_doc.document. ...

  2. frp内网穿透原理及配置应用

    1 Frp介绍 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. ...

  3. 手把手教你用frp内网穿透

    手把手教你用frp做内网穿透 frp 是一个专注于内网穿透的反向代理应用程序,使用时需要花钱申请公网IP和云服务器,可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. 一.认识 ...

  4. Frp内网穿透(一)简述和目录

    Frp内网穿透 1. 简述 2. 原理介绍 3. Frp介绍 3.1 下载 3.2 说明 4. 博客目录 1. 简述 毕业设计时使用过frp内网穿透,工作中调试设备也使用了frp内网穿透,frp的稳定 ...

  5. frp内网穿透服务使用

    1,frp简介 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. ...

  6. 谷粒商城P139集——云服务器frp内网穿透+nginx

    1.腾讯云购买域名并备案以及解析 我注册的域名是第一年14元的 (1)购买域名并备案 (2)域名解析 测试:如域名为gulimall.com 则在浏览器中输入gulimall.com:9200(前提是 ...

  7. frp内网穿透-公网IP低成本使用高性能kali

    frp内网穿透-公网IP低成本使用高性能kali 1.frp Github项目地址:https://github.com/fatedier/frp 找到最新的releases下载,系统版本自行确认. ...

  8. Frp内网穿透——frps服务端部署

    由于现在IPv4地址的短缺,在国内不可能每个设备都会分配到一个公网IP,因此从公网中访问自己的私有设备向来是一件难事儿.本次带大家了解一下frp内网穿透的服务端教学,让你也能够部署一个内网穿透服务. ...

  9. frp内网穿透SSH

    参考博客: 博客1(推荐): https://sspai.com/post/52523 博客2: https://blog.csdn.net/qq_36981760/article/details/1 ...

最新文章

  1. 【资源推荐】知识图谱顶会论文集锦
  2. python 函数参数类型检查
  3. Linux下的I/O多路复用select,poll,epoll浅析
  4. sarscape 将dem文件转化成stl_SARscape与SARProz软件中的重要缩写
  5. Java Servlet ServletContext
  6. java多对多关系实例_【Java一对多关系实例公布,你的Java真的可以玩的这么好吗】- 环球网校...
  7. 函数的凹凸区间怎么求_函数凹凸区间怎么求
  8. MacOS为什么无法删除ABC或日语输入法
  9. numpy的choose 函数实现条件筛选
  10. 自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(上)
  11. android手机自带浏览器无法识别apk文件
  12. java 安全策略_java.security.Security 支持的安全策略和算法
  13. mysql练习题库一
  14. PS_一寸(2.5*3.5cm)照片排列在六寸(4*6)相片纸
  15. 什么是价值投资?(Value Investing)
  16. 登录功能实现账号锁定
  17. bzoj4605 崂山白花蛇草水 权值线段树套kd树
  18. 随机合并多个视频,同时更换背景音频
  19. 肠-肝轴:宿主-微生物群相互作用影响肝癌发生
  20. 【考研英语语法】前置与倒装句

热门文章

  1. Mysql查询 竖列变横列
  2. 戴德金--连续性和无理数--我自己做的中文翻译第10页
  3. EnterPrise Architect(EA)使用教程(六)部署图
  4. 两因素促机构告别严寒迎暖春
  5. 用JavaScript实现按钮点击事件
  6. Linux xshell通过ssh连接Linux系统
  7. 【Python】numpy将数组按顺序排列后又重新还原原来顺序的方法
  8. Matlab/simulink MW级别双馈风电机组并网仿真模型,kw级别永磁同步机PMSG并网仿真模型
  9. parent.relativePath报错
  10. Springcloud阿里云Oss服务