摘要:简介是一个开源简洁易用高性能的内网穿透和反向代理软件,支持等协议。是一个可用于内网穿透的高性能的反向代理应用,分为服务端和客户端,支持协议。
什么是内网穿透
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服务器端安装
■解压压缩包
1 2 3 | 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配置文件修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [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的服务端:
1 | . /frps -c frps.ini |
如果看到屏幕输出这样一段内容,即表示运行正常,如果出现错误提示,请检查上面的步骤。
此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面
■服务端后台运行
1 | nohup . /frps -c frps.ini & |
输出如下内容即表示正常运行
此时访问 x.x.x.x:7500 依然可以打开仪表板界面,至此,服务端即设置完成。
这里设置了后台运行。如果更改了配置需要重新运行这个程序 需要先结束这个进程
1 2 | ps -aux | grep "frps" kill -9 加 id |
客户端设置
用文本编辑器打开frpc.ini,与服务端类似,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [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证书,域名为公开的域名。
宝塔面板开启方向代理: