摘要:简介是一个开源简洁易用高性能的内网穿透和反向代理软件,支持等协议。是一个可用于内网穿透的高性能的反向代理应用,分为服务端和客户端,支持协议。
什么是内网穿透
1.内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,有时候就会出现内网穿透不支的情况。内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式ADSL的宽带路由器,具有一个动态或者是固定的公网IP,最后ADSL直接在 交换机 上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外,还可以解决UDP中出现的数据传输不稳定问题。 2.简单说,就是A客户端要访问B客户端,通过一台服务器进行桥接,桥接有两种方式,一种是相互转发,另一个是告诉对方的地址,自己就当一个介绍人的角色。
frp简介
frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。frp 是一个可用于内网穿透的高性能的反向代理应用,分为服务端frps和客户端frpc,支持 tcp, udp, http, https 协议。
frp的作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
frp工作原理
1.服务端运行,监听一个主端口,等待客户端的连接;
2.客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
3.服务端fork新的进程监听客户端指定的端口;
4.外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
5.客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
frp的使用
下载 frp,地址:https://github.com/fatedier/frp/releases
服务器端:linux ,客户端:windows 下载的版本为:v0.51.3 linux版本:frp_0.51.3_linux_386.tar.gz windows版本:frp_0.51.3_windows_386.zip
实验环境的准备
实验环境 1.windows本地计算器(win11) 2.linux服务器(阿里云服务器) 3.申请阿里域名 4.阿里云服务器和宝塔打开下机端口号 7000 7500 8080
linux服务器端安装
■解压压缩包
tar -zxvf frp_0.51.3_linux_386.tar.gz
cp -r frp_0.22.0_linux_amd64 frp
cd frp
(s结尾代表server)分别是服务端程序和服务端配置文件,(c结尾代表client)分别是客户端程序和客户端配置文件。
服务器端frps.ini配置文件修改:
[common]
# 表示用于客户端和服务端连接的端口
bind_port = 7000
# 是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
dashboard_port = 7500
# 用于客户端和服务端连接的口令
token = 12345678
# dashboard_user和dashboard_pwd表示打开仪表板页面登录的用户名和密码,自行设置即可
dashboard_user = admin
dashboard_pwd = admin123456
# 设置监听 HTTP 请求端
#vhost_http_port = 8080
; vhost_https_port = 8080
■运行frps的服务端:
./frps -c frps.ini
如果看到屏幕输出这样一段内容,即表示运行正常,如果出现错误提示,请检查上面的步骤。
此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面
■服务端后台运行
nohup ./frps -c frps.ini &
输出如下内容即表示正常运行
此时访问 x.x.x.x:7500 依然可以打开仪表板界面,至此,服务端即设置完成。
这里设置了后台运行。如果更改了配置需要重新运行这个程序 需要先结束这个进程
ps -aux | grep "frps"
kill -9 加id
客户端设置
用文本编辑器打开frpc.ini,与服务端类似,内容如下:
[common]
# 这里服务器地址
server_addr = xx.xxx.xx.xxx
# 表示用于客户端和服务端连接的端口
server_port = 7000
# 用于客户端和服务端连接的口令
token = 12345678
[web]
# 请求类型 http/https
type = tcp
local_ip = 127.0.0.1
# fpr客户端的 Web 服务监听的端口
local_port = 443
# 绑定自定义域名,也可以是ip
custom_domains = www.xxx.com
remote_port = 8080
本地站点配置:
使用phpstudy配置本地站点,并配置ssl证书,域名为公开的域名。
宝塔面板开启方向代理: