因为个人需要,整理的
参考:https://blog.csdn.net/u013144287/article/details/78589643
操作系统:1.公网服务器:CentOS
2.内网服务器:CentOS
绑定域名:无
frp的作用
- 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
- 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
- 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务(ps:例如在家里通过 ssh 访问处于公司内网环境内的主机)
说明
-
实现功能
① 外网通过ssh访问内网机器(ps:主要验证实现此功能)
② 自定义绑定域名访问内网web服务 -
配置准备
① 公网服务器1台(演示用机为CentOS系统)
② 内网服务器1台(演示用机为CentOS系统)
③ 公网服务器绑定域名1个(实现1-①功能不需要公网服务器绑定域名,1-②功能必须需要公网服务器绑定域名)
④ 内网服务器部署一个web服务,可以用tomcat模拟,没有测试。
步骤
- 服务端(公网服务器)
① 下载压缩包
$ wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
② 创建目录
$ mkdir -p /usr/local/frp
$ mv frp_0.13.0_linux_amd64.tar.gz /usr/local/frp
③ 解压
$ tar -zxvf frp_0.13.0_linux_amd64.tar.gz
$ cd frp_0.13.0_linux_amd64
$ rm frpc frpc.ini
# frpc、frpc.ini为客户端配置文件,frps、frps.ini为服务端配置文件,此处删除客户端配置文件
④ 配置 frps.ini(服务端配置文件)
$ vi frps.ini
[common]
bind_port = 7000 # 与客户端绑定的进行通信的端口,两端需一致
vhost_http_port = 6081 # 访问客户端web服务自定义的端口号,任意一个没使用的端口号都可以
⑤ 运行
$ nohup ./frps -c ./frps.ini & # 后台运行
- 客户端(内网服务器)
①下载压缩包
$ wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
② 创建目录
$ mkdir -p /usr/local/frp
$ mv frp_0.13.0_linux_amd64.tar.gz /usr/local/frp
③ 解压
$ tar -zxvf frp_0.13.0_linux_amd64.tar.gz
$ cd frp_0.13.0_linux_amd64
$ rm frps frps.ini
# frpc、frpc.ini为客户端配置文件,frps、frps.ini为服务端配置文件,此处删除服务端配置文件
④ 配置 frpc.ini(客户端配置文件)
$ vi frpc.ini
[common]
server_addr = ***.***.***.*** # 服务端(公网服务器)IP
server_port = 7000 # 与服务端bind_port一致
[ssh]
type = tcp # 连接协议
local_ip = 192.168.1.223 # 客户端(内网服务器)IP
local_port = 22 # ssh默认端口号
remote_port = 12580 # 自定义的访问内部ssh端口号,任意一个没使用的端口号都可以
# 公网通过ssh访问内部服务器
[web]
type = http # 访问协议
local_port = 8081 # 内网web服务的端口号
custom_domains = xxxx.xxxx.com # 所绑定的公网服务器域名,一级、二级域名都可以
# 公网访问内部web服务器以http方式(ps:因没有域名,暂时没有验证)
⑤ 运行
$ nohup ./frpc -c ./frpc.ini & # 后台运行
访问方式
1.外网ssh访问内网服务器
ip:***.***.***.*** port:12580 用户名:linux服务器的用户 密码:linux服务器的密码
ip:***.***.***.*** port:22 用户名:linux服务器的用户 密码:linux服务器的密码
ip:xxxx.xxx.com port:12580 用户名:linux服务器的用户 密码:linux服务器的密码
ip:xxxx.xxx.com port:22 用户名:linux服务器的用户 密码:linux服务器的密码
2.自定义绑定域名访问内网web服务
xxxx.xxx.com:6081