前提条件
一台有公网IP的服务器
Frp介绍
frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。frp 项目官网是 github.com/fatedier/fr…
frp工作原理
服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
服务端fork新的进程监听客户端指定的端口;
外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
2.1 服务端配置
下载frp库
linux版:阿里网盘
内网穿透 www.aliyundrive.com/s/BDc125gUd… 提取码: yj03
解压frp压缩包修改配置文件
tar -zxvf frp_0.48.0_linux_amd64.tar.gz
vi frps.ini
[common]
bind_port = 7000(默认端口可修改 与客户端保持一致)
vhost_http_port = 9000(需要内穿的端口)
token = 12345678(自定义 客户端和服务端保持一致)
#修改配置完毕后重启
./frps -c frps.ini
#重启可能会出现端口占用的情况
使用命令 losf -i:端口号 查找被占用端口
kill -9 pid 干点进程 在进行重启就好
2.2 客户端配置
同样的压缩包进行解压/修改配置文件
tar -zxvf frp_0.48.0_linux_amd64.tar.gz
vi frpc.ini
[common]
server_addr = *.*.*.*(服务端IP)
server_port = 7000 (自定义 需要和服务端对应)
token = 12345678 (自定义 需要和服务端对应)
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[portainer]
type = http
local_ip = 127.0.0.1
local_port = 9000 (需要内穿的端口)
custom_domains = (服务端IP)
[rocketMq_consle]
type = http
local_ip = 127.0.0.1
local_port = 9001
custom_domains = 服务端IP
#可以配置多个
#[名称不可重复]
#修改配置完毕后重启
./frps -c frps.ini
#重启可能会出现端口占用的情况
使用命令 losf -i:端口号 查找被占用端口
kill -9 pid 干点进程 在进行重启就好
配置开机自启动
Linux 系统下,使用systemd 可以方便地控制 frp 服务端 frps 的启动和停止、配置后台运行和开启自启。
要使用 systemd 来控制 frps,需要先安装 systemd,然后在 /etc/systemd/system 目录下创建一个 frps.service 文件。
如Linux服务端上没有安装 systemd,可以使用 yum 或 apt 等命令安装 systemd。
yum下载
yum install systemd
apt下载
apt install systemd
使用文本编辑器,如 vim 创建并编辑 frps.service 文件。
写入内容
vim /etc/systemd/system/frps.service
服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.ini
[Install]
WantedBy = multi-user.target
使用 systemd 命令,管理 frps。
启动frp
systemctl start frps
停止frp
systemctl stop frps
重启frp
systemctl restart frps
查看frp状态
systemctl status frps
配置 frps 开机自启。
systemctl enable frps
配置后如果访问不到 去云服务器看看对应的端口是否开放