FRP (Fast Reverse Proxy) 是一个用于内网穿透的高效反向代理应用,它支持 TCP、UDP、HTTP 和 HTTPS 等多种协议,能够让处于防火墙或 NAT 后的内网服务通过公网访问。通过 FRP,内网服务可以绑定到外网 IP 地址和端口,用户可以方便地通过公网访问这些内网服务,适用于远程管理、应用发布等场景。
FRP 分为两部分:客户端(frpc) 和 服务端(frps)。
当客户端(frpc)向服务端(frps)注册时,会告知服务端希望暴露哪些内网服务。服务端会将这些服务的流量转发给客户端,并通过客户端再发送给相应的内网服务。
远程访问内网服务:例如,你可以通过 FRP 访问家里或公司的服务器,而不需要配置复杂的端口映射。
1,创建并配置 frp 文件
[root@server ~]# cat /root/frps.ini
[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = admin
# 登录面板的密码
dashboard_pwd = 123456
# 身份验证
token = qwertyui
[root@server ~]#
2,拉取镜像启动容器
[root@server ~]# docker pull registry.cn-shenzhen.aliyuncs.com/mogublog_business/frps
[root@server ~]# docker run --restart=always --network host -d -v /root/frps.ini:/etc/frp/frps.ini --name frps registry.cn-shenzhen.aliyuncs.com/mogublog_business/frps
5d1c7d3ec1697c08bd77fa267e9ae007ffa8c379b81bb6953d6e01ff85c5cbb7
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d1c7d3ec169 registry.cn-shenzhen.aliyuncs.com/mogublog_business/frps "/bin/sh -c '/usr/bi…" 4 seconds ago Up 3 seconds frps
[root@server ~]#
3,登录 frp 的 web 后台进行查看(账号: admin 密码: 123456)
http://服务器IP:7500
1,创建并配置 frp 文件
[root@client ~]# cat /root/frpc.ini
[common]
# server_addr为云服务器IP地址
server_addr = xx.xx.xx.xx
# server_port为服务端监听端口,bind_port
server_port = 7000
# 服务端设置的token
token = qwertyui
# 添加穿透端口1
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8822
# 添加穿透端口2
[nginx]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8880
[root@client ~]#
2,客户端镜像拉取启动
[root@client ~]# docker pull registry.cn-shenzhen.aliyuncs.com/mogublog_business/frpc:latest
[root@client ~]# docker run --restart=always --network host -d -v /root/frpc.ini:/etc/frp/frpc.ini --name frpc registry.cn-shenzhen.aliyuncs.com/mogublog_business/frpc:latest
5d73d9ee2583b73b84a2863f61ddf29d722b7ac8a79f1e366bec7998bc8e278b
[root@client ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d73d9ee2583 registry.cn-shenzhen.aliyuncs.com/mogublog_business/frpc:latest "/bin/sh -c '/usr/bi…" 4 seconds ago Up 4 seconds frpc
[root@client ~]#
3,测试内网穿透端口 1
root@ceshi:~# ssh root@服务器IP -p 8822
root@服务器IP's password:
Last login: Tue Oct 8 16:38:52 2024 from localhost
[root@client ~]#
4,测试内网穿透端口 2
# 拉取一个 nginx 镜像并启动
[root@client ~]# docker run -d -p 80:80 --name=web --restart=always nginx
32204c6ca6c19ff662ba21511a916dc58141add3c02fa8cd34b1c024cdf03474
[root@client ~]#
[root@client ~]#
[root@client ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32204c6ca6c1 nginx "/docker-entrypoint.…" 11 seconds ago Up 9 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web
[root@client ~]#
1,进入 GitHub 下载对应版本
https://github.com/fatedier/frp/
2,解压 创建 frpc.ini 文件 添加内容
[common]
# 服务端公网ip
server_addr = 47.116.17.20
# 对应服务端配置 bind_port
server_port = 7000
# 对应服务端配置中的 token
token = qwertyui
[mstsc]
type = tcp
# 此处不需要改
local_ip = 127.0.0.1
# windows服务器默认的远程端口,如果考虑安全问题,可以修改远程端口,对应再修改此处
local_port = 3389
# local_port映射的远程端口,也就是映射的服务端的端口
remote_port = 8888
3,创建 bat 启动文件并添加内容
frpc.exe -c frpc.ini
4,运行bat文件之后 web 网页查看端口已生效
5,测试远程登录