FRP内网穿透参数配置+服务器与客户端的简易配置+完整配置详解(Windows)

avatar
作者
筋斗云
阅读量:2

Frp的简单理解与执行的前提条件

有设备A,想访问处于局域网的设备C时,可以通过处在公网的设备B进行转发
前提条件:一个有公网IP的电脑,云服务器、有公网IPV4/6的设备均可,如果使用ipv6模式,那么设备BC都必须支持ipv6才行,ipv6地址除了bind_addr和server_addr,都要用[]括起来

本文基于:v0.48.0版本
官网: 官网地址
Girhub:Github地址,windows下载amd64版本就行,386是x86

服务器端(有公网IP的电脑)最简易配置

frps.ini(//注释请删掉)

[common] bind_addr = 0.0.0.0//监听地址,默认0.0.0.0就行 bind_port = 7000//frps与frpc交互用的端口,记得打开防火墙 

新建一个Start.bat,内容:fprs -c frps.ini
双击就可以启动

客户端(内网电脑)最简易配置

frpc.ini(//注释请删掉)

[common] server_addr = 114.514.191.981//服务器的公网ip,网址也行 server_port = 7000//frps与frpc交互用的端口,记得打开防火墙  [test]//随便起个隧道名字,支持中文 local_ip = 127.0.0.1//被访问的IP local_port = 3389//被访问的端口,3389就是远程桌面端口 remote_port = 7100//监听端口,当frps的这个端口收到请求后,会转发到上面的127.0.0.1:3389里 //frpc告诉服务端的frps,你收到7100端口的东西发到我后,我会发送到127.0.0.1的3389端口里 //端口批量映射需要隧道名以range:开头,用1000-1010格式,,分隔  //可同时转发多个,配置同上 [test2] ... ... 

新建一个Start.bat,内容:fprc -c frpc.ini
双击就可以启动

自此,配置完成,其中的端口记得在防火墙入站规则里打开,或者给exe加上防火墙入站规则也行

进阶配置(多了些常用参数)

frps.ini

[common] bind_addr = 0.0.0.0//监听地址,默认0.0.0.0就行 bind_port = 7000//frps与frpc交互用的端口,记得打开防火墙 token = 12345678//设置token log_file = ./frps.log//日志路径 log_level = info//日志级别:trace(追踪), debug(调试), info(信息), warn(警告), error(错误) log_max_days = 3//日志保存天数 max_pool_count = 5//连接池数量,如果有很多链接最好弄高点,默认5 //后台仪表盘,登录后可查看frp状态 dashboard_addr = 0.0.0.0//监听IP dashboard_port = 7500//监听端口 dashboard_user = admin//登录账号 dashboard_pwd = admin//登录密码 //HTTP协议 vhost_http_port = 80//监听http协议的端口,可以与bind_port相同 vhost_https_port = 443//监听https协议的端口,可以与bind_port相同 vhost_http_timeout = 60//http协议超时时间()  

frpc.ini

[common] server_addr = 114.514.191.981//服务器的公网ip,网址也行 server_port = 7000//frps与frpc交互用的端口,记得打开防火墙 token = 12345678//设置token,对应frps log_file = ./frps.log//日志路径 log_level = info//日志级别:trace(追踪), debug(调试), info(信息), warn(警告), error(错误) log_max_days = 3//日志保存天数  [test] type = tcp//连接类型,tcp | udp | http | https | stcp | xtcp//默认TCP local_ip = 127.0.0.1//被访问的IP local_port = 3389//被访问的端口 remote_port = 7100//监听的服务器端的端口 use_encryption = true//是否加密信息 use_compression = true//是否压缩信息 bandwidth_limit = 1MB//限制该隧道的带宽,单位为KB或MB bandwidth_limit_mode = client//限制带宽的位置,client或server,默认client(服务端) 

相对完整配置(基本用不上)

frps.ini

[common] bind_addr = 0.0.0.0//[必填]服务器IP,0.0.0.0表示监听所有,支持ipv6 bind_port = 7000//[必填]frps与frpc交互的端口(与你转发的端口无关) bind_udp_port = 7001//UDP协议监听端口 kcp_bind_port = 7000//KPC协议的UDP监听端口  //QUIC协议的UDP设置 quic_bind_port = 7002//监听的端口,想使用必填 quic_keepalive_period = 10//有效期 quic_max_idle_timeout = 30//最大超时时间 quic_max_incoming_streams = 100000//最大传输流?  //网络代理 proxy_bind_addr = 127.0.0.1//代理的监听地址  //HTTP协议 vhost_http_port = 80//监听http协议的端口,可以与bind_port相同 vhost_https_port = 443//监听https协议的端口,可以与bind_port相同 vhost_http_timeout = 60//http协议超时时间()  //? tcpmux_httpconnect_port = 1337//监听TPC Http请求,默认0,如果是0,将不会监听 tcpmux_passthrough = false//如果是true,不会对流量进行更新  //后台仪表盘,查看frp状态 dashboard_addr = 0.0.0.0//监听IP dashboard_port = 7500//监听端口 dashboard_user = admin//登录账号 dashboard_pwd = admin//登录密码 dashboard_tls_mode = false//是都开启仪表盘的tls模式(Https) dashboard_tls_cert_file = server.crt//Https需要的crt dashboard_tls_key_file = server.key//Https需要的key pprof_enable = false//在仪表盘中是否启用golang-proff处理程序  //内部监控,使用Dashboard(后台仪表盘)的地址 enable_prometheus = true//可通过 http://后台仪表盘的IP和端口/metrics 进行访问 assets_dir = ./static//后台仪表盘资源目录(仅限debug模式)  //日志 log_file = ./frps.log//日志路径 log_level = info//日志级别:trace(追踪), debug(调试), info(信息), warn(警告), error(错误) log_max_days = 3//日志保存天数 disable_log_color = false//当log_file为控制台时禁用日志颜色,默认值为false detailed_errors_to_client = true//是否向frpc端发送错误消息  //验证 authentication_method = token//用何种方式进行验证,token和oidc(开放ID连接) authenticate_heartbeats = false//是否要在发送给frps端的心跳包中包含身份验证令牌 authenticate_new_work_conns = false//是否要在发送给frps的新连接中包含身份令牌 token = 12345678//设置token oidc_issuer =//oidc令牌,默认空 oidc_audience =//oidc受众,默认空 oidc_skip_expiry_check = false//如果是false,则会检查令牌是否过期 oidc_skip_issuer_check = false//如果是false,则会检查颁发者是否与oidc_issuer中指定的颁发者匹配  //其他 heartbeat_timeout = 90//心跳值,负数禁用,不建议改动 user_conn_timeout = 10//用户连接超时时间,不建议改动 allow_ports = 2000-3000,3001,3003,4000-50000//只允许frpc绑定这里列出来的端口,不设置则无限制 max_pool_count = 5//连接池数量,如果有很多链接最好弄高点,默认5 max_ports_per_client = 0//每个客户端可使用的最大端口,0则无限制 tls_only = false//是否只允许tls(Https) tls_cert_file = server.crt//tls的crt tls_key_file = server.key//tls的key tls_trusted_ca_file = ca.crt//信任crt路径 subdomain_host = frps.com//自定义二级域名,设置后,frpc端只要设置subdomain就行,例如frpc的subdomain = test,将自动补全为test.frps.com  tcp_mux = true//是都开启TPC复用,开启后不需要一个用户一个连接,降低延迟节省开销 tcp_mux_keepalive_interval = 60//TPC复用的保活时间 tcp_keepalive = 7200//客户端与服务端的保活探测间隔 custom_404_page = /path/to/404.html//自定义404页面路径 udp_packet_size = 1500//指定UDP数据包大小,客户端服务端要一样    

frpc.ini

配置服务器参数 [common] server_addr = 0.0.0.0//[必填]服务器公网IP server_port = 7000//[必填]frps与frpc交互的端口(与你转发的端口无关) dial_server_timeout = 10//连接超时时间 dial_server_keepalive = 7200//客户端与服务端的保活探测间隔  //使用代理去链接frps,这里支持3种链接,仅限TPC模式 http_proxy = http://user:passwd@192.168.1.128:8080 http_proxy = socks5://user:passwd@192.168.1.128:1080 http_proxy = ntlm://user:passwd@192.168.1.128:2080  //日志 log_file = ./frps.log//日志路径 log_level = info//日志级别:trace(追踪), debug(调试), info(信息), warn(警告), error(错误) log_max_days = 3//日志保存天数 disable_log_color = false//当log_file为控制台时禁用日志颜色,默认值为false  //验证 token = 12345678//frps上对应的token authentication_method = token//用何种方式进行验证,token和oidc(开放ID连接) authenticate_heartbeats = false//是否要在发送给frps端的心跳包中包含身份验证令牌 authenticate_new_work_conns = false//是否要在发送给frps的新连接中包含身份令牌 //oidc相关配置 oidc_client_id = oidc_client_secret = oidc_audience = oidc_scope = oidc_token_endpoint_url = oidc_additional_audience = https://dev.auth.com/api/v2/ oidc_additional_var1 = foobar  //通过http操作frpc时的配置 admin_addr = 127.0.0.1//IP admin_port = 7400//端口 admin_user = admin//用户名 admin_pwd = admin//密码 assets_dir = ./static//资源目录 pprof_enable = false//在仪表盘中是否启用golang-proff处理程序   //QUIC协议的UDP设置 quic_keepalive_period = 10//有效期 quic_max_idle_timeout = 30//最大超时时间 quic_max_incoming_streams = 100000//最大传输流?  //其他 tls_enable = true//如果为true,frpc将用tls(Https)的方式连接frps tls_cert_file = server.crt//tls的crt tls_key_file = server.key//tls的key tls_trusted_ca_file = ca.crt//信任crt路径 tls_server_name = example.com//tls服务器名 disable_custom_tls_first_byte = false//若为true,并启用了tls,将用第一个自定义字节连接frps dns_server = 8.8.8.8//设置frpc使用的DNS服务器 start = ssh,dns//设置代理名称,用,分割,默认空表示所有代理 pool_count = 5//提前建立链接,默认0 tcp_mux = true//是否开始TPC复用,值要与frps相同 tcp_mux_keepalive_interval = 60//TPC复用保活间隔 user = your_name//修改代理名称,将改为{user}.{proxy} login_fail_exit = true//首次链接失败是否退出程序 protocol = tcp//连接到frps的通信协议 connect_server_local_ip = 0.0.0.0//protocol为TPC和websocket时设置的本地IP udp_packet_size = 1500//指定UDP数据包大小 includes = ./confd/*.ini//包括代理的其他配置文件。 //心跳设置,不建议修改 heartbeat_interval = 30//间隔时间 heartbeat_timeout = 90//超时时间  //服务器端的其他元数据信息 meta_var1 = 123 meta_var2 = 234    配置客户端参数 [隧道名称]//隧道名称,[ssh]名字只能有一个 type = tcp//连接类型,tcp | udp | http | https | stcp | xtcp//默认TCP local_ip = 127.0.0.1//转发的IP local_port = 22//转发的本机端口 remote_port = 6001//监听的frps服务器的端口 bandwidth_limit = 1MB//限制该隧道的带宽,单位为KB或MB bandwidth_limit_mode = client//限制带宽的位置,client或server,默认client(服务端) use_encryption = false//是否加密信息 use_compression = false//是否压缩信息 //建立组,frps会对相同组内连接进行负载均衡,组秘钥需要一致 group = test_group//组命 group_key = 123456//组秘钥 //后端健康检查,检查连接健康度 health_check_type = tcp health_check_timeout_s = 3//检查连接超时 health_check_max_failed = 3//失败次数,连接失败次数达到后,将从frps中删除该隧道 health_check_interval_s = 10//检查间隔,秒 subdomain = web01//子域名 custom_domains = web01.yourdomain.com//主域名 //其他元数据信息 meta_var1 = 123 meta_var2 = 234  

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!