如何在 Debian ARM 上配置 FRP 和代理工具服务开机自启
在某些情况下,我们希望某些服务(如 FRP
客户端和代理工具)在系统启动时自动启动,尤其是在嵌入式设备或 ARM 系统上。systemd
是一种管理系统和服务的工具,它可以帮助我们实现这些服务的开机自启。在本文中,我将总结如何使用 systemd
配置 FRP
和代理工具在 Debian ARM 系统上自动启动。
1. 配置 FRP 开机自启
步骤:
-
创建或编辑
frpc.service
文件:
首先,我们需要为FRP
创建一个systemd
服务文件。进入/etc/systemd/system/
目录并创建一个名为frpc.service
的文件:sudo nano /etc/systemd/system/frpc.service
-
配置服务文件内容:
在文件中添加以下内容:[Unit] Description=FRP Client After=network-online.target Wants=network-online.target [Service] ExecStart=/root/frp/frpc -c /root/frp/frpc.ini Restart=always RestartSec=10 User=root WorkingDirectory=/root/frp [Install] WantedBy=multi-user.target
After=network-online.target
确保FRP
在网络完全在线时启动。ExecStart
指定FRP
客户端的启动命令。Restart=always
和RestartSec=10
确保服务崩溃时会自动重启,并延迟 10 秒后重试。User=root
指定以root
用户身份运行。WorkingDirectory=/root/frp
指定服务的工作目录。
-
保存并重新加载
systemd
配置:
完成后,保存文件并运行以下命令重新加载配置:sudo systemctl daemon-reload
-
启用并启动
FRP
服务:
启用FRP
服务开机自启:sudo systemctl enable frpc.service
启动服务:
sudo systemctl start frpc.service
-
检查服务状态:
使用以下命令检查FRP
服务是否正常运行:sudo systemctl status frpc.service
2. 配置代理工具开机自启
代理工具同样可以通过 systemd
来配置开机自启。
步骤:
-
创建或编辑代理工具的
service
文件:
同样地,进入/etc/systemd/system/
目录,创建代理工具的service
文件:sudo nano /etc/systemd/system/proxy.service
-
配置服务文件内容:
在文件中添加以下内容:[Unit] Description=Proxy Service After=network-online.target Wants=network-online.target [Service] ExecStart=/root/proxy/proxy-linux-arm64-latest -f /root/proxy/proxy_config.yml Restart=always RestartSec=10 User=root WorkingDirectory=/root/proxy [Install] WantedBy=multi-user.target
After=network-online.target
和Wants=network-online.target
确保代理工具在网络准备好后启动。ExecStart
指定启动代理工具的命令和配置文件路径。Restart=always
和RestartSec=10
确保服务崩溃时会自动重启,并延迟 10 秒后重试。
-
保存并重新加载
systemd
配置:
保存文件并运行以下命令重新加载配置:sudo systemctl daemon-reload
-
启用并启动代理工具服务:
启用代理工具服务开机自启:sudo systemctl enable proxy.service
启动服务:
sudo systemctl start proxy.service
-
检查服务状态:
使用以下命令检查代理工具服务是否正常运行:sudo systemctl status proxy.service
3. 解决网络依赖问题
在某些情况下,服务可能依赖网络连接才能启动。为了确保服务在网络准备好之后启动,我们可以在 systemd
服务文件中添加以下配置:
[Unit]
After=network-online.target
Wants=network-online.target
这确保了服务会在网络完全可用时启动。
目录结构
在配置 FRP
和代理工具的开机自启服务时,以下是系统中的关键目录和文件结构概览:
1. FRP 相关目录结构
/root/
├── frp/
│ ├── frpc # FRP 客户端可执行文件
│ ├── frpc.ini # FRP 客户端配置文件
│ ├── frpc_full.ini # 完整版的 FRP 配置文件(可选)
│ └── nohup.out # 运行日志文件(可选)
└── frpc.service # systemd 服务文件,定义了 FRP 的开机自启配置
2. 代理工具相关目录结构
/root/
├── proxy/
│ ├── proxy-linux-arm64-latest # 代理工具可执行文件
│ ├── proxy_config.yml # 代理工具配置文件
└── proxy.service # systemd 服务文件,定义了代理工具的开机自启配置
3. systemd 配置目录
/etc/systemd/system/
├── frpc.service # 为 FRP 客户端配置的 systemd 服务文件
└── proxy.service # 为代理工具配置的 systemd 服务文件
目录结构说明:
-
/root/frp/
: 存放FRP
客户端的可执行文件及其配置文件。frpc
:FRP
客户端程序。frpc.ini
:FRP
配置文件,定义了连接信息和代理设置。nohup.out
: FRP 服务的运行日志文件(可选)。
-
/root/proxy/
: 存放代理工具的程序及其配置文件。proxy-linux-arm64-latest
: 代理工具的可执行文件。proxy_config.yml
: 代理工具的配置文件,包含了代理规则和服务器配置。
-
/etc/systemd/system/
:systemd
服务文件的存放目录。frpc.service
:FRP
客户端的systemd
服务文件,用于配置开机自启。proxy.service
: 代理工具服务的systemd
服务文件,用于配置开机自启。
小贴士:
- 如果你希望在启动时自动运行
FRP
或代理工具,确保将它们的systemd
服务文件放在/etc/systemd/system/
目录下,并使用systemctl enable
来设置它们为开机自启。 - 你可以使用
journalctl -u <service-name>
来查看服务的日志输出,帮助你排查启动问题。