网际飞扬

还记得年少时的梦么,醒不过来 便信以为真……

主题背景
本网站首发版本创建于1999年4月
网际飞扬
手机网站二维码

请使用手机扫描二维码,登录网站手机版。

Frp知识:客户端通过服务端上网的说明|Frp没有正向代理功能

  • 2023-03-08
  • 1214
  • 飞驰的心

Frp内网穿透

Frp是什么,怎么配置这类基础问题自己去搜,网上成篇累牍的教程本文不再赘述,如果你遇到下面这个棘手的问题,那么我们可以一起讨论一下:

前提:Frp穿透完成,你在内网发布了网站,网站也能被公网用户正常访问;

问题:如果你做小程序开发、公众号开发、或者调用某些第三方api的时候,对方往往会要求你设置一个IP白名单(对方出于安全考虑仅仅白名单内的IP进行通信)。这时候Frp的兄弟就抓瞎了(如果有固定的公网IP还搞什么Frp呢)……

Frp目前解决的是外网穿透至内网,使你内网的服务可以通过Frp发布出来;简单地说就是:外 to 内 (反向代理)

而你内网web应用如果调用第三方api的时候(也就是内网对外联网请求数据),仍然走的是本地网络连接,你是无法通过Frp服务端的IP连接互联网的。(正向代理),这时候api的运营方如果检测你的ip的话,人家检测到了仍然是你本地内网的出口ip(不是Frp服务器端的固网ip),如果api方要求添加ip白名单,我看你拿啥给人添。

我翻遍了互联网,Frp好像没有正向代理的功能,偶尔有一个篇提起Frp正向代理的文章,说的也含含糊糊。于是我花了一上午时间彻彻底底把官网例子看了一遍。

官方提供的Frp软件本身是集成有http代理和socket服务的,调试也不难,但是但是但是,你可千万别理解错了,至少我之前就理解错了,以为:在服务端配置好http代理或soceet5以后,客户机就能使用服务端的出口进行上网,其实不是这样的。和咱理解的刚好相反……

服务端正常配置完以后,http代理和socket主要是在客户端的ini中配置,配置完以后:通过第三方的代理软件连接服务端的IP+端口,就可能以http代理或socket的方式进入内网(折腾了半天还是外进内),唉……

结论:如果你有通过服务器外连上网的需求,你也就别有什么幻想了,乖乖的——

1、在Frp服务端(公网服务端)再架设一个正向代理服务(也就是传统意义的代理服务器)。

2、在Frp客户端(也就是内网)装一个全局代理服务(Proxifier),然后本地(内网)的所有外连请求都会从公网IP发出。


附:为什么要装这个Proxifier软件,因为它是一个全局代理软件,如果不装你只能设置你的浏览器走代理,装上以后,你这个计算机上的所有联网请求都会走代理(这就是全局的意思)。

附2:常用配置模板,这是更实用的配置,可不是网上那种千篇一律抄来抄去的模板

#服务端配置项
[common]
bind_port = 7000
bind_udp_port = 7001
token = 与客户端对应的连接密码
tcp_mux = true

allow_ports = 80,443,8000,14330 #需要开多少个对外服务端口在这里设置
vhost_http_port = 80 #虚拟主机专用配置:有了它你才可以在客户端根据域名区分,将不同的网站转发至不同的内网ip上
vhost_https_port = 443
#ui管理界面设置
use_compression = true
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
#日志
log_file = ./log/frps.log
log_level = info
log_max_days = 3
#可以设置一个404页,如果客户端没有启动或连接失败,会触发这个页面
custom_404_page = ./page/404.html

#客户端配置项
[common]
server_addr = 外网服务端ip
server_port = 7000
token = 与服务端的连接密码
use_compression = true
log_file = ./log/frpc_124.log
log_level = info
log_max_days = 3

#管理ui的配置项
admin_addr = 192.168.1.70
admin_port = 7401
admin_user = admin
admin_pwd = 123456

#虚拟主机设置:根据不同的域名转发至不同的内网服务器
[web_home]
type = http
local_port = 80
local_ip = 192.168.1.98
custom_domains = demo.fvce.com,home.fvce.com

#虚拟主机设置:其他域名转发至另外的服务器中
[http]
type = http
local_ip = 192.168.1.72
local_port = 80
custom_domains = *

#证书类网站也可以区别转发
[https]
type = https
local_ip = 192.168.1.72
local_port = 443
custom_domains = *


本博客所有内容均为原创,原则上我不希望你转载。如特别喜欢而转载的话,请务必注明出处“网际飞扬 http://www.fayo.net” 否则本人闲来无事可能会把你误当成维权的靶子。

评论

验证码

全部评论

共{{commentCount}}条
  • {{i+1}}楼
    {{rs.Msg_Sender}}{{rs.Msg_Datetime}}

    {{rs.Msg_Content}}

播放器封面
  • 宠物精灵