FRP简介
大约 2 分钟
FRP简介
🔗 FRP是一种用于将本地服务暴露给公网的工具,通过内网穿透的方式实现,能够实现内网穿透、端口转发等功能。内网穿透是一种将局域网或内网主机提供的服务暴露给公网访问的技术,它可以让外部网络用户访问到处于NAT后面的内网主机提供的服务,如HTTP、FTP、SMTP等服务。
安装
🖥️ 使用CentOS 7操作系统演示
🔗 官方项目地址:github.com/fatedier/frp
以下命令请在服务器中执行
下载并解压
# 下载frp安装包
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
# 解压安装包
tar -xvf frp_0.38.0_linux_amd64.tar.gz
# 移动解压后的文件至指定目录
mkdir -p /root/local/frp
mv frp_0.38.0_linux_amd64/* /root/local/frp
文件说明
frps.ini
: 服务端配置文件frps
: 服务端软件frpc.ini
: 客户端配置文件frpc
: 客户端软件
配置systemctl来控制,服务端运行
创建并编辑frp.service文件
# 使用vim编辑器创建frp.service文件
vim /usr/lib/systemd/system/frp.service
将以下内容写入文件中,注意修改路径以匹配实际路径。这里是启动的服务端。
/usr/lib/systemd/system/frp.service
[Unit]
Description=frp server
After=network.target
[Service]
Type=simple
ExecStart=/root/local/frp/frps -c /root/local/frp/frps.ini
Restart=on-failure
User=root
[Install]
WantedBy=multi-user.target
重新加载systemctl配置
systemctl daemon-reload
使用systemctl控制frp服务
# 启动frp服务
systemctl start frp
# 停止frp服务
systemctl stop frp
# 重启frp服务
systemctl restart frp
# 查看frp服务状态
systemctl status frp
# 设置frp开机自启
systemctl enable frp
# 取消frp开机自启
systemctl disable frp
配置和使用
服务端
frps.ini
[common]
bind_port = 7000 # 用于客户端和服务端连接的端口
dashboard_port = 7500 # 服务端仪表板的端口
token = 12345 # 用于客户端和服务端连接的口令,请自行设置并记录
dashboard_user = admin
dashboard_pwd =123456 # 仪表板页面登录的用户名和密码,自行设置即可
启动
# 启动
./frps -c ./frps.ini
# 后台启动
nohup ./frps -c ./frps.ini &
客户端
frpc.ini
[common]
server_addr = 0.0.0.0 # 服务端IP地址
server_port = 7000 # 服务器端口
tcp_mux = true
protocol = tcp
token = 123456 # 服务器上设置的连接口令
dns_server = 114.114.114.114 # DNS配置
[ssh]
privilege_mode = true
type = tcp # 转发的协议类型
local_ip = 127.0.0.1
local_port = 5500 # 本地要穿透端口
remote_port = 7100 # 本地要穿透端口要转发服务器的端口
use_encryption = true
use_compression = true
启动
# 启动
./frpc -c ./frpc.ini
# 后台启动
nohup ./frpc -c ./frpc.ini &
相关问题
- 启动不了
服务端和客户端启动不了的情况下,并且没有报错误,有概率是因为文件没有执行权限
# 赋值权限命令
chmod 777 文件名
- 服务端启动报错 Exec format error
/frpc: cannot execute binary file: Exec format error
这是下载错文件了,下载的 FRP 与操作系统处理器架构不匹配,需要重新下载正确的文件。
可以使用 arch
、uname -a
等命令查看系统架构。
arch
# 例如输出:x86_64