一、安装 FRP(如果还未安装)
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
cd frp_0.61.1_linux_amd64
二、配置 FRP、 配置服务端(frps)
FRP 主要包括两个组件:frps(服务端)和 frpc(客户端)。你需要根据你的场景配置相应的文件。
配置服务端(frps)
在服务端(例如你的 VPS)上,frp_0.61.1_linux_amd64目录下创建并配置 frps.ini 文件。
[common]
bind_addr = 0.0.0.0 # 监听所有 IP 地址,确保外部可以访问
bind_port = 12400 # 服务器监听的端口,可以设置为其他端口
# 配置 HTTP 和 HTTPS 端口
vhost_http_port = 80 # HTTP 端口
vhost_https_port = 443 # HTTPS 端口
# 可以设置认证方法和 token(如果需要)
auth_token = Frps1010 # 和 frpc 端配置的 token 一致
在 Linux 系统上启动:
启动 FRPS 服务
# 使用 frps.ini 配置文件启动 FRP 服务
./frps -c ./frps.ini
使 FRPS 在后台运行
如果你希望 FRPS 在后台运行,可以使用 nohup 或将其作为服务来管理。比如:
nohup ./frps -c ./frps.ini &
或者使用 systemd 来将其设置为开机自启服务(如果你使用的是 Linux 系统)。
创建 systemd 服务文件(Linux)
创建服务文件
sudo nano /etc/systemd/system/frps.service
写入以下内容:
[Unit]
Description=FRP Server
After=network.target
[Service]
ExecStart=/path/to/frps -c /path/to/frps.ini
Restart=on-failure
User=nobody
Group=nogroup
[Install]
WantedBy=multi-user.target
将 /path/to/frps 和 /path/to/frps.ini 替换为你实际的路径。
启动并使 FRPS 开机自启
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动 frps 服务
sudo systemctl start frps
# 设置开机自启
sudo systemctl enable frps
在 Windows 系统上启动:
在 Windows 上,只需双击运行 frps.exe,或者在命令行中进入 FRP 解压目录后执行:
frps.exe -c frps.ini
4. 检查服务是否正常运行
启动后,你可以通过以下命令检查 frps 服务是否正常运行。
在 Linux 系统上:
# 查看 frps 服务状态
ps aux | grep frps
# 查看端口是否监听
netstat -tulnp | grep 12400
如果看到 frps 在监听端口并正常运行,说明启动成功。
在 Windows 系统上:
在任务管理器中查找 frps.exe 进程,或者使用 netstat 命令检查端口:
netstat -ano | findstr :12400
5. 日志检查
如果 frps 启动失败,检查日志以获取更多的错误信息。你可以在 frps.ini 文件中配置日志路径。
[common]
log_file = ./frps.log
log_level = info
log_max_days = 7
然后查看 frps.log 文件获取更多的调试信息。
三、创建frpc和配置frpc
frpc.ini 文件是 FRP 客户端的配置文件,通常会与 FRP 客户端的执行文件(frpc)一起放在同一个目录下。
如果你按照上述步骤下载并解压 FRP 客户端文件,那么 frpc.ini 应该会在解压后的文件夹内。如果你没有找到该文件,可以再解压目录下创建一个新的 frpc.ini 配置文件。
如果你想为多个域名配置不同的代理,只需在 frpc.ini 文件中为每个代理添加一个新的 customDomains 字段。以下是更新后的配置,包含了两个域名 www.aghhhb.de 和 cc.tu.com,并且为每个域名分别配置了 http 和 https 代理。
serverAddr = "10.10.2.1"
serverPort = 12400
auth.method = "token"
auth.token = "Frps1010"
[[proxies]]
name = "web685_https_b" #自己定义名称,#换名字重复会报错
type = "https"
localIP = "127.0.0.1" #不需要改
localPort = 443 #可改网站的端口
customDomains = ["www.aghhhb.de", "cc.dd.com"] #自己网站的域名
[[proxies]]
name = "web685_http_b" #自己定义名称,换名字重复会报错
type = "http"
localIP = "127.0.0.1" #不需要改
localPort = 80 #不改动网站申请证书端口
customDomains = ["www.aghb.de", "cc.dd.com"] #自己网站的域名
配置说明:
web685_https_b:这是https配置,监听本地的443端口。customDomains列表包含www.aghb.de和cc.dd.com,即这两个域名都通过https访问。web685_http_b:这是http配置,监听本地的80端口。customDomains列表同样包含www.aghb.de和cc.dd.com,即这两个域名都通过http访问。
注意事项:
- 同一个代理配置多个域名:你可以在
customDomains中列出多个域名,这样同一个端口(80或443)就可以同时处理多个域名的请求。 - 服务器端的设置:确保你的
frps.ini服务器端配置也支持这些域名,并正确转发请求到相应的本地端口。
启动FRP 客户端
配置好 frpc.ini 后,启动、重启 FRP 客户端:
cd frp_0.61.1_linux_amd64
./frpc -c frpc.ini
二、在 Linux 上使 FRPC 在后台运行
在 Linux 系统中,通常使用 nohup 或 systemd 来使 FRPC 在后台运行。
方法 1: 使用 nohup 命令
nohup 是一个非常常用的 Linux 命令,它可以让程序在后台运行,并且在你关闭终端后仍然保持运行。
- 在终端中输入以下命令:
nohup ./frpc -c ./frpc.ini &
nohup命令会让 FRPC 在后台运行,即使你关闭终端窗口,它也会继续运行。&符号表示将命令放入后台运行。
- 你可以查看
nohup输出日志,默认情况下,nohup会将所有输出写入nohup.out文件:
tail -f nohup.out
方法 2: 使用 systemd 创建开机自启服务(推荐)
如果你希望 FRPC 在后台自动启动,并且能够在系统崩溃后重启,可以将其配置为 systemd 服务。这样,它将在系统启动时自动运行。以下是配置 systemd 自动启动 FRP 的步骤:
步骤 1:创建 frpc 的 systemd 服务文件
使用文本编辑器创建一个新的 systemd 服务文件。我们将文件命名为 frpc.service,并将其放在 /etc/systemd/system/ 目录下:
sudo nano /etc/systemd/system/frpc.service
2.在文件中添加以下内容:
[Unit]
Description=FRP Client
After=network.target
[Service]
ExecStart=/root/frp_0.61.1_linux_amd64/frpc -c /root/frp_0.61.1_linux_amd64/frpc.ini
WorkingDirectory=/root/frp_0.61.1_linux_amd64
Restart=always
User=root
RestartSec=3
[Install]
WantedBy=multi-user.target
解释:
ExecStart:指向 FRPC 可执行文件的位置和配置文件frpc.ini的路径。你需要根据你实际安装的路径进行修改。WorkingDirectory:设置工作目录为 FRPC 的安装目录。Restart=always:如果 FRPC 停止,systemd 会自动重启它。RestartSec=3:重启时延迟 3 秒。WantedBy=multi-user.target:确保 FRPC 在系统的多用户模式下启动。
步骤 2:重新加载 systemd 服务
保存并退出编辑器后,需要重新加载 systemd 服务管理器,以便它识别新的服务配置:
sudo systemctl daemon-reload
步骤 3:启动并启用 FRPC 服务
- 启动 FRPC 服务:
sudo systemctl start frpc
2.设置 FRPC 服务为开机自启动:
sudo systemctl enable frpc
这会确保每次服务器重启时,FRPC 会自动启动。
步骤 4:检查服务状态
你可以使用以下命令检查 FRPC 服务的状态:
sudo systemctl status frpc
如果 FRPC 正常运行,输出会类似于以下内容:
● frpc.service - FRP Client
Loaded: loaded (/etc/systemd/system/frpc.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2025-01-20 10:00:00 UTC; 2min ago
Main PID: 97413 (frpc)
Tasks: 10 (limit: 4915)
Memory: 5.0M
CGroup: /system.slice/frpc.service
└─97413 /root/frp_0.61.1_linux_amd64/frpc -c /root/frp_0.61.1_linux_amd64/frpc.ini
步骤 5:重启系统测试
你可以重启服务器测试 FRPC 是否会自动启动:
sudo reboot
重启后,你可以再次使用 systemctl status frpc 命令查看 FRPC 是否已成功启动。
总结
通过创建 frpc.service 的 systemd 服务文件,你就可以确保 FRP 在服务器重启后自动启动,且可以方便地管理它。这样 FRP 就会像其他服务一样,在后台运行并自动启动,无需手动干预。
6、彻底取消 FRPC 服务的开机自启动并删除相关配置,可以按照以下步骤操作:
1. 删除 systemd 服务文件:
由于 FRPC 服务是通过 systemd 管理的,你可以删除其服务文件以彻底取消开机自启动:
sudo rm /etc/systemd/system/frpc.service
2. 重新加载 systemd 配置:
删除服务文件后,重新加载 systemd 配置以生效:
sudo systemctl daemon-reload
3. 检查服务状态:
确认 FRPC 服务已被彻底移除:
sudo systemctl status frpc
如果服务文件已删除,你会看到类似以下的输出:
Unit frpc.service could not be found.
如果你只是希望停止 FRPC 服务并禁用开机自启动(无需删除服务文件):
- 停止 FRPC 服务:
如果 FRPC 服务仍在运行,可以手动停止:
sudo systemctl stop frpc
2.禁用开机自启动:
禁用 FRPC 服务的开机自启动:
sudo systemctl disable frpc
检查服务状态:
确认 FRPC 服务的开机自启动已禁用:
sudo systemctl status frpc
输出中应显示 disabled,例如:
Loaded: loaded (/etc/systemd/system/frpc.service; disabled; preset: enabled) Active: inactive (dead)
总结:
- 如果你想彻底删除 FRPC 服务的开机自启动配置,可以删除
/etc/systemd/system/frpc.service文件并重新加载systemd。 - 如果你只是想禁用开机自启动而不删除服务文件,可以使用
sudo systemctl disable frpc。 - 无论哪种方式,FRPC 服务都不会在系统启动时自动运行。
七. 在 Windows 上使 FRPC 在后台运行
如果你使用的是 Windows 系统,可以通过两种方式让 FRPC 在后台运行。
方法 1: 使用命令行启动 FRPC
- 在命令行中进入 FRPC 的目录,运行以下命令:
frpc.exe -c frpc.ini
- 要让 FRPC 在后台运行,你可以使用 Windows 内建的
start命令启动它:
start /b frpc.exe -c frpc.ini
这样,FRPC 会在后台运行,并且不显示窗口。
方法 2: 创建 Windows 服务(使用 NSSM)
如果你希望将 FRPC 设置为 Windows 服务(可以在开机时自动启动),可以使用一个叫做 NSSM(Non-Sucking Service Manager)的工具。
- 下载 NSSM 工具:NSSM 下载页面
- 使用以下命令将 FRPC 注册为服务:
nssm install frpc "C:\path\to\frpc.exe" "-c C:\path\to\frpc.ini"
- 启动 FRPC 服务:
nssm start frpc
- 设置开机自启:
nssm set frpc Start SERVICE_AUTO_START
总结
- Linux 系统:你可以使用
nohup或systemd来使 FRPC 在后台运行,systemd是最推荐的方式,因为它可以管理进程、处理崩溃重启等。 - Windows 系统:你可以通过
start命令让 FRPC 在后台运行,或者使用 NSSM 将其作为 Windows 服务管理。
选择适合你的操作系统和需求的方法来使 FRPC 在后台运行。