一、FRP 服务端(frps)安全迁移与配置
1. 创建专用系统服务用户
创建一个名为 frp 的系统账户,用于隔离运行权限。该账户被禁止通过终端登录,且无需设置密码。
sudo useradd -r -s /usr/sbin/nologin -d /opt/frp -U -M frp参数说明:
-r:创建系统级账户。-s /usr/sbin/nologin:禁止该用户通过 SSH 或终端登录系统。-d /opt/frp:指定该用户的逻辑主目录。-U:自动创建与用户同名的用户组。-M:不创建额外的家目录。
2. 准备目录与修改所有权
将 frps 的程序文件、配置文件和日志目录统一规划,并将读写权限完全移交给 frp 用户。
# 创建程序与日志目录
sudo mkdir -p /opt/frp /var/log/frp
# 转移程序与配置文件所有权
sudo chown -R frp:frp /opt/frp
# 设置日志目录所有权(允许 frp 用户写入日志)
sudo chown frp:frp /var/log/frp
# 如果你确实需要 frps 直接监听 80 端口,可以使用 setcap 命令赋予 frps 这个二进制文件绑定低权限端口的能力,而不需要给它 root 权限:
sudo setcap 'cap_net_bind_service=+ep' /opt/frp/frps3. 更新 Systemd 服务配置
编辑位于 /etc/systemd/system/frps.service 的服务配置文件,指定运行用户并确认启动路径。
sudo nano /etc/systemd/system/frps.servicefrps.service 配置如下:
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 指定以 frp 用户身份运行,提升安全性
User = frp
Group = frp
# 指定工作目录,防止相对路径报错
WorkingDirectory = /opt/frp
# 更新为新的安装路径和配置文件
ExecStart = /opt/frp/frps -c /opt/frp/frps.toml
# 异常退出时自动重启
Restart = on-failure
RestartSec = 5
[Install]
WantedBy = multi-user.target4. 重载并启动服务
使 Systemd 重新读取配置文件,并启动 FRP 服务端。
# 重新加载服务配置
sudo systemctl daemon-reload
# 启动服务并设置开机自启
sudo systemctl enable frps
sudo systemctl start frps
# 检查服务运行状态
sudo systemctl status frps
二、FRP 客户端(frpc)安全迁移与配置
1. 创建专用系统服务用户
创建一个名为 frpc 的系统账户,用于隔离内网穿透客户端的运行权限。
sudo useradd -r -s /usr/sbin/nologin -d /opt/frpc -U -M frpc2. 准备目录与修改所有权
将 frpc 的程序文件和配置文件统一规划,并将权限移交给 frpc 用户。
# 创建程序目录
sudo mkdir -p /opt/frpc
# 转移程序与配置文件所有权
sudo chown -R frpc:frpc /opt/frpc3. 更新 Systemd 服务配置
编辑位于 /etc/systemd/system/frpc.service 的服务配置文件,指定运行用户并确认启动路径。
sudo vim /etc/systemd/system/frpc.service在 [Service] 模块下,添加或修改以下配置:
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
User=frpc
Group=frpc
#Restart=always
Restart=on-failure
RestartSec=5s
#启动服务的命令(此处写你的frpc的实际安装目录)
ExecStart=/opt/frpc/frpc -c /opt/frpc/frpc.toml
[Install]
WantedBy=multi-user.target4. 重载并启动服务
使 Systemd 重新读取配置文件,并启动 FRP 客户端。
# 重新加载服务配置
sudo systemctl daemon-reload
# 启动服务并设置开机自启
sudo systemctl enable frpc
sudo systemctl start frpc
# 检查服务运行状态
sudo systemctl status frpc
评论已关闭