frp 内外网穿透配置手册
frp 内外网穿透配置手册
frp准备
- 确认系统指令集
uname -i
一般分两种aarch64、x86_x64。前者是arm架构、后者是amd架构
- 官网下载对应的版本
https://github.com/fatedier/frp/releases
arc 下载对应arc 版本,arm架构下载对应的arm版本
- frpc
这是 frp 的客户端可执行文件。
用于在客户端机器上运行,建立与 frp 服务器的连接。
负责将本地服务暴露到公网。 - frpc.toml
这是 frp 客户端的配置文件。
使用 TOML 格式编写。
包含客户端的设置,如服务器地址、认证信息、需要暴露的本地服务等。 - frps
这是 frp 的服务器端可执行文件。
运行在具有公网 IP 的服务器上。
负责接收来自 frpc 的连接并转发流量。 - frps.toml
这是 frp 服务器端的配置文件。
同样使用 TOML 格式。
包含服务器的设置,如监听端口、认证方式、允许的协议等。 - LICENSE
这是软件的许可证文件。
包含软件的使用、分发和修改条款。
frp 使用 Apache License 2.0,这是一个开源许可证。
安装和配置
frp配置中主要分两种角色1、代理服务器 2、代理客户端
flowchart LR
frps --> frpc1[frpc1 192.168.39.53]
frps[frps 200.200.20.110] --> frpc2[frpc2 192.168.38.54]
frps[frps 200.200.20.110] --> frpc3[...]
- 前置机(可以公网或者vpn访问) server端安装
修改frps.toml配置文件
vim frps.toml
# 【必填】这是你frps服务的端口
bindPort = 7000
# 【建议必填】认证设置(强烈建议)
auth.token = "X9f$p2KlZ7*vB3@qR7nJ3^wY5"
# 【可选】允许的端口范围(可选)
allowPorts = [
{ start = 6000, end = 7000 },
{ single = 80 },
{ single = 443 }
]
配置frps随机自启动
sudo vim /etc/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
# 这个配置用户即可
User=root
Restart=on-failure
RestartSec=5s
# 修改实际位置
ExecStart=/opt/frp_0.59.0_linux_amd64/frps -c /opt/frp_0.59.0_linux_amd64/frps.toml
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl status frps
- 内网服务器配置
修改frpc配置文件
# server的ip 或者公网ip
serverAddr = "200.200.20.110"
serverPort = 7000
# server配置的token
auth.token = "X9f$p2KlZ7*vB3@qR7nJ3^wY5"
[[proxies]]
# 多个内网服务器名称要唯一
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6999
配置frpc随机启动
# 声明系统服务
vim /etc/systemd/system/frpc.service
[Unit]
Description=frp client
After=network.target
[Service]
Type=simple
# 不能配置nobody,会启动失败
User=forlinx
Restart=on-failure
RestartSec=5s
ExecStart=/home/baijs/opt/frp/frp_0.59.0_linux_amd64/frpc -c /home/baijs/opt/frp/frp_0.59.0_linux_amd64/frpc.toml
[Install]
WantedBy=multi-user.target
# 重启生效配置
sudo systemctl daemon-reload
sudo systemctl start frpc
sudo systemctl status frpc
备注
- 期间遇到权限的问题,给frpc 或者 frps 增加执行权限
chmod +x
-
遇到权限够(+x)但是还是提示permission delined。这个问题是系统服务脚本中的user 配置nobody导致的。
-
ping能ping通200.200.20.110, 但是一旦wget 200.200.20.110:8807 就报错。这个是因为服务器上配置了代理导致的。
浙公网安备 33010602011771号