需求
frp的稳定性和功能强大有目共睹,我也是长期使用frp,用来穿透家里的各种服务。frp最基础的服务就是http/tcp服务穿透,但是我们通常遇见的问题是,这类服务一般都需要利用一个域名来穿透。
如果不清楚frp的可以看我之前的教程
那么问题来了,我家里的服务实在是太多了,光是群晖就是好几个端口,而且每周都有新增的项目上线,但是每次都要去做穿透,非常麻烦,而且通常一个服务有多个端口,需要多N多个穿透。
frp又很麻烦的不能再服务端操控,每次都要到客户端完成。而且域名多了长度又长,非常难记,比如要记住xxx.xxx.com:xxxx,难道就不能直接访问192.168.1.x吗?
http/socks5插件
那么到底能不能一次操作?能不能直接通过内网ip+端口的形式访问?
当然可以,就是利用frp的http插件和sock5的插件,可以直接输入家里内网的IP访问,不许需要访问穿透域名。
插件模式是为了在客户端提供更加丰富的功能,目前内置的插件有 unix_domain_socket、http_proxy、socks5、static_file。具体使用方式请查看使用示例。
通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。使用插件后 local_ip 和 local_port 不再需要配置。
通过frp的这个插件,不论内网项目增加、端口变化都不用再去修改frp配置,连域名都省了,一切就像是在内网中一样。
在客户端加以下穿透项目:
[http-proxy]
type = tcp
remote_port = 1090
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc123
格式的话和正常的frp穿透是一样的,增加了plugin、plugin_http_user 、plugin_http_passwd三个参数。后两个参数是可选的,可以不填,不过为了避免被扫描到滥用,还是填上吧。
访问家里HTTP(s)服务
如果需要访问群晖界面,地址填写公网服务器地址,端口填写1090,同时填写用户名和密码。
之后直接访问10.0.0.X:5000 ,就可以直接访问回家里的群晖。而之间我需要通过比如dsm.abc.com:5000这样的域名访问。
tcp访问
对于tcp访问,比如ssh,需要通过代理,比如xshell增加:
[http-proxy]
type = tcp
remote_port = 1091
plugin = socks5
plugin_http_user = abc
plugin_http_passwd = abc123
socks5是个透明代理,只是透明的传输数据,在Xshell中增加一个代理,用来访问1091端口。
一样填上主机端口和地址。
这样一来,内网项目增加、端口变化都不用再去修改frp配置,也不用再去买域名来穿透,一切就像是在内网中一样?
当然,有很多软件本身没有设置代理的地方,比如远程桌面,这时候需要Sockscap来代理,这里不做评价,可以自行百度。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/3285.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~