使用FRP做内网穿透

Github地址:https://github.com/fatedier/frp

什么是FRP?

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

怎么用FRP

下载FRP

https://github.com/fatedier/frp/releases

配置

此文章使用的是FRP版本为 v0.24.1

FRP的配置很简单,最常见的有两种情况:

  1. 需要通过公网访问内网的SSH/RemoteDesktop
  2. 需要通过公网访问内网的Webserver

对于第一种情况,需要FRP转发TCP即可。
对于第二种情况,需要转发HTTP/HTTPS,FRP支持多虚拟主机,先指定端口,然后根据域名,转发到各个虚拟主机。当然,既然是HTTP/HTTPS,那也可以像第一种情况那样走TCP协议,来达到转发效果。

本文只对反向代理TCP做简要介绍 , 详细配置请参考:https://github.com/fatedier/frp/blob/master/README_zh.md

服务端配置:

[common]
bind_port = 7000

dashboard_user= admin
dashboard_pwd= admin
dashboard_port= 7001

token = 666

启动服务端:

./frps -c ./frps.ini

客户端配置:

[common]
server_addr = 66.66.66.66
server_port = 7000
token = 666

[RDP_Home]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7002
use_encryption = true
use_compression = true

[Web_01]
type = tcp
local_ip = 127.0.0.1
local_port = 443
remote_port = 7003
use_encryption = true
use_compression = true

启动客户端:

./frpc -c ./frpc.ini

请读者自行配制防火墙。

参数配置

参数 备注
服务端:
1 bind_port 用于反向代理的端口
2 dashboard_user 通过浏览器查看 frp 的状态以及代理统计信息展示。用户名
3 dashboard_pwd 密码
4 dashboard_port 端口
5 token 只有于客户端一致,才能使用FRP
客户端:
1 server_addr 服务器IP地址
2 server_port 服务器的bind_port
3 token 只有于服务端一致,才能使用FRP
4 type 本文使用的是tcp
5 local_ip 127.0.0.1
6 local_port 端口
7 remote_port 服务器对外端口
8 use_encryption true 启用加密
9 use_compression true 启用压缩

参考

fatedier/frp

声明

本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,发表在CSDN博客园,欢迎读者转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接!请读者/爬虫们尊重版权

posted @ 2019-02-24 18:24  ChasingDreams  阅读(166)  评论(0编辑  收藏  举报