家里路由器获取的ip是大内网,在公司链接家里的电脑还必须搞内网穿透哎测试了两天在这里记录下;
之前在家里放置了一台NAS服务器,由于没有公网IP一直使用花生壳来穿透使用,但是最近调取文件比较大,花生壳提供的带宽太小只有1MB,128kb的速度够干嘛,想想家里的200MB带宽都浪费,测试了下用P2P内网穿透可以点对点跑满带宽,但是客户端也需要安装p2p穿透软件,太麻烦;
想着准备问问联通公司打电话要个公网IP玩玩,结果前两天给联通公司打电话要公网IP没要到;
网上搜了下发现可以用frp配合带公网IP的服务端来SSH链接和http访问内网服务器;
frp全名Fast Reverse Proxy,是用于提供内网穿透服务的工具,主要用于解决一些内网服务没有公网ip但是却需要提供外网访问的问题;
使用frp你可以将内网中的TCP、UDP、HTTP、HTTPS等协议类型的服务发布到公网,并且支持Web服务根据域名进行路由转发;
想要使用frp服务,将内网中的服务发布到公网,你需要先拥有一台拥有公网ip的网络设备搭建frp服务端,再在内网需要穿透的设置中搭建frp客户端服务才能进行穿透;
买了台国内大带宽NAT服务器做服务端速度200M跑满带宽速度刷刷的;
frps跟frpc区别:frp分为客户端和服务端,客户端叫frpc服务端叫frps;客服端是放在内网的服务端是放在公网服务器的;
想要正常使用frp工具,我们需要对服务端和客户端的配置文件分别进行设置。
将 frps 及 frps.ini 放到有公网 IP 的机器上。
将 frpc 及 frpc.ini 放到处于内网环境的机器上。
frps配置文件frps.ini
# [common] is integral section
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
bind_addr = 0.0.0.0
bind_port = 15443
# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
kcp_bind_port = 15443
# if you want to configure or reload frps by dashboard, dashboard_port must be set
dashboard_port = 16443
# dashboard assets directory(only for debug mode)
dashboard_user = admin
dashboard_pwd = admin123
# assets_dir = ./static
vhost_http_port = 180
vhost_https_port = 1443
# console or real logFile path like ./frps.log
log_file = ./frps.log
# debug, info, warn, error
log_level = info
log_max_days = 3
# auth token
token = admin123
# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
#allow_ports = 1-65535
# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
max_pool_count = 50
# if tcp stream multiplexing is used, default is true
tcp_mux = true
frps配置文件解说
[common] # 必须标识头,是不可或缺的部分;
bind_addr = 0.0.0.0 # 必须服务器IP,0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6;
bind_port = 15443 # FRP通讯端口,用于和客户端内网穿透传输数据的端口,可自定义。
kcp_bind_port = 15443 #用于KCP协议UDP通讯端口,也可以和“bind_port”共用同一端口,如果没有设置,则kcp在frps中被禁用,可自定义;
dashboard_port = 16443 #frps 网页控制台WEB服务端口,访问web服务端IP:端口就可以打开frps网页控制后台,端口可自定义,通过浏览器查看 frps下的frpc 的状态以及代理统计信息展示;
dashboard_user = admin #登陆账号,自定义WEB管理用户名,如果没有设置,默认值是admin;
dashboard_pwd = admin #登陆密码,自定义WEB管理密码,如果没有设置,默认值是admin;
vhost_http_port = 180 # 如果你想支持http,必须指定http端口监听,指定端口为http网页协议,可自定义;
vhost_https_port = 1443 # 如果你想支持https,必须指定https端口监听,指定端口为https网页协议,可自定义;
log_file = ./frps.log #日志存放路径;
log_level = info #日志记录类别,可选:trace, debug, info, warn, error;
log_max_days = 3 #最多保存多少天日志,可自定义保存多少天;
token = admin123 # 连接认证密钥-特权模式,客户端连接到本服务端的登录验证密钥,可自定义;
max_pool_count = 50 #每个内网穿透可以创建的连接池上限,避免大量资源占用。可自定义;
tcp_mux = true # 如果使用tcp流复用,默认值为true,不开启则,false;客户端和服务器端之间的连接支持多路复用,不再需要为每一个用户请求创建一个连接,使连接建立的延迟降低,并且避免了大量文件描述符的占用,使 frp 可以承载更高的并发数。
frpc配置文件frpc.ini
[common]
server_addr = ###.###.##.## #是公网服务器frps的IP;(这里防止被攻击我已#号代替);
server_port = 15443 #服务器frps的服务端连接端口;
token = admin123 #服务器frps连接的Token;
[ssh]
type = tcp #连接协议;
local_ip = 192.168.0.12 #内网服务器ip;
local_port = 22 #ssh默认端口号;
remote_port = 122 #自定义外部访问内部ssh的转发端口号;
[web] #frps控制台显示(可随意设置会显示在frps 网页控制台里,不可以重复);
type = http #访问协议;
local_ip = 192.168.0.12 #内网服务器ip;
local_port = 80 #内网web服务的端口号;
custom_domains = dd.1lia.com #所绑定的公网服务器域名,一级、二级域名、IP都可以;
[web2]
type = http
local_ip = 192.168.0.12
local_port = 80
custom_domains = aa.1lia.com
[WEB3]
type = http
local_ip = 192.168.0.12
local_port = 80
custom_domains = cc.1lia.com
其他没有用到的frps配置文件参数说明
bind_udp_port = 7001 #UDP通讯端口,以帮助使UDP打洞穿透NAT,可自定义。
privilege_allow_ports = 2000-3000,3001,3003,4000-50000
#限制只能使用服务端的指定端口,只允许客户端绑定你列出的端口,如果你什么都不设置的话,不会有任何限制。可自定义!
#开放这些端口,给客户端使用,包括tcp、udp、kcp、
subdomain_host = frps.com
#自定义二级域名,通过在 frps 的配置文件中配置 subdomain_host,就可以启用该特性。之后在 frpc 的 http、https 类型的代理中可以不配置 custom_domains,而是配置一个 subdomain 参数。
#只需要将 *.{subdomain_host} 解析到 frps 所在服务器。之后用户可以通过 subdomain 自行指定自己的 web 服务所需要使用的二级域名,通过 {subdomain}.{subdomain_host} 来访问自己的 web 服务。
heartbeat_timeout = 90 #心跳配置,不建议修改,默认值是90可自定义。
authentication_timeout = 900 #客户端与服务端时间相差验证,假如客户端设备的时间和服务端的时间相差大于设定值,那么拒绝客户端连接。如果设置为0,则不验证时间,默认值为900秒,可自定义。
已有 11322 位网友参与,快来吐槽:
发表评论