×

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

hqy hqy 发表于2023-02-17 16:30:52 浏览244 评论0

抢沙发发表评论

前言

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


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

客户端frpc

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


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


客户端 frpc 安装教程汇总


配置frpc.ini

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

mac_light mac_pre box-shadow-wrap-lg" style="box-sizing: border-box; overflow: hidden; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 13px; padding: 0px; margin-top: 1.5em; margin-bottom: 1.5em; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; border: none; border-radius: 0px; box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 6px; position: relative; background-color: rgb(238, 238, 238) !important;">[common]server_addr = frp.freefrp.netserver_port = 7000token = freefrp.net# 以上为frp服务器信息# 以下为本地内网客户端信息# 群晖DS1815+管理页面[DS1815_DSM_HTTP]type = httplocal_ip = 192.168.1.2local_port = 5000custom_domain = nas.ioiox.com[DS1815_DSM_HTTPS]type = httpslocal_ip = 192.168.1.2local_port = 5001custom_domain = nas.ioiox.com# 群晖Drive 桌面客户端[DS1815_Drive_Desktop]type = tcplocal_ip = 192.168.1.2local_port = 6690remote_port = 46690custom_domain = drive.ioiox.com

服务器信息

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

[common]server_addr = frp.freefrp.netserver_port = 7000token = freefrp.net

HTTP/HTTPS配置


[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 = tcplocal_ip = 192.168.1.2local_port = 6690remote_port = 46690custom_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 服务器通过域名来识别请求,服务器仅凭访问的端口号就知道该转发给哪位用户.


打赏

本文链接:https://www.kinber.cn/post/3641.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客