怎样将 FRP 安装为系统服务
Contents
简介
frp 是一个可用于内网穿透的高性能的反向代理开源应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
frp 使用Go 语言开发,得益于此,我们使用非常简单,只需要添加执行权限就可以运行了。如果需要将它运行在后台,作为服务的运行的话,就需要我们对系统有一定的了解了,下面我简单介绍一下,如何将 frp安装为系统服务
注意:在安装服务之前,请确保你的 frp 已经参照官方文档进行了正确的配置。
windows
若要将 frp 安装为 windows 的服务,我们需要借助第三方的开源工具 nssm
来实现,以下是操作步骤:
去
nssm
官网下载对应的工具,并解压到 D盘根目录以管理员方式运行 cmd, 直接输入
d
按回车 切换到d盘在cmd中运行 命令
.nssm.exe install frpc
,此时会弹出 GuiGUI 中选择你的frp路径,以及在
Arguments
中 正确的填入-c 完整配置文件路径
,如图:点击
install service
后,cmd会提示:Service "frpc" installed successfully!
表示安装完成
以上就是将frpc 安装为windows服务的操作步骤了,如果是 frps 也是同样的操作,就不再赘述了。
Linux
相比 Windows,Linux 其实更简单,只需要将启动脚本放到相应的目录并加上执行权限就可以了
以下以 frpc
为例
init.d
建议使用 后面的 systemd 来管理
操作步骤:
将 frpc 文件写入在到
/etc/init.d/frpc
, 并添加执行权限:chmod +x /etc/init.d/frpc
添加开机启动:
- Centos:
chkconfig frpc on
- Debian:
update-rc.d frpc defaults
- Centos:
启动:
service frpc start
停止:
service frpc stop
重启:
service frpc restart
查看状态:
service frpc status
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
## File: /etc/init.d/frpc #!/bin/sh # # frps: FRP-Client Daemon # # description: FRP-Client Daemon # 请按实际情况修改 PID_FILE=/run/frpc.pid CONFIG_FILE=/etc/frpc.ini FRPC_File=/usr/local/frp/frpc start() { if [ ! -f $PID_FILE ]; then echo -n $"Starting FRP client..." nohup $FRPC_File -c $CONFIG_FILE < /dev/null > /dev/null 2> /dev/null & echo $! > $PID_FILE echo "" else PID=$(cat $PID_FILE) if [ ! -f /proc/$PID/cmdline ]; then echo -n $"Starting FRP client..." nohup $FRPC_File -c $CONFIG_FILE < /dev/null > /dev/null 2> /dev/null & echo $! > $PID_FILE echo "" else echo "FRP client is already running..." fi fi; } stop() { if [[ -f $PID_FILE ]]; then echo -n $"Shutting down FRP client..." kill -9 $(cat $PID_FILE) rm -f $PID_FILE echo "" else echo "FRP client is not running..." fi; } status() { if [ -f $PID_FILE ]; then PID=$(cat $PID_FILE) if [ -f /proc/$PID/cmdline ]; then echo "FRP client is running..." else echo "FRP client is not running..." rm -f $PID_FILE fi else echo "FRP client is not running..." fi; } [ -f $FRPC_File ] || exit 1 # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status ;; restart) stop sleep 3 start ;; *) echo $"Usage: $0 {start|stop|status|restart}" exit 1 esac exit 0
systemd
将frpc.service
放到 /lib/systemd/system
后,执行以下命令就可以了:
- 重载命令:
systemctl daemon-reload
- 添加开机启动:
systemctl enable frpc
- 启动 frpc:
systemctl start frpc
- 查看 frpc 状态:
systemctl status frpc
重启 frpc :
systemctl restart frpc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 说明:如果是 frps 只需要修改相应的名字和路径就可以了 # frpc.service [Unit] Description=FRP Client Daemon After=network.target Wants=network.target [Service] Type=simple # 注意修改 frpc 和 frpc.ini的路径 ExecStart=/usr/local/frpc/frpc -c /usr/local/frpc/frpc.ini Restart=always RestartSec=20s User=nobody [Install] WantedBy=multi-user.target