V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
CSGO
V2EX  ›  问与答

lede 如何使用 systemctl 来创建自启动 frp?

  •  
  •   CSGO · Sep 12, 2020 · 5937 views
    This topic created in 2055 days ago, the information mentioned may be changed or developed.

    我是使用 GitHub 最新版的 frp 部署了服务器和软路由,但是按照教程,应该在 /lib/systemd/system 下创建 frpc.service:

    [Unit] Desctiption = frpc service After = network.target syslog.target Wants = network.target

    [Service] Type = simple ExecStart = /mnt/sda5/frp_0.33.0_linux_amd64/frpc -c /mnt/sda5/frp_0.33.0_linux_amd64/frpc.ini

    [Install] WantedBy = multi-user.target

    结果发现保存不了:'/lib/systemd/system/frpc.service' No such file or directory 。

    才发现软路由根本 lib 下就没有 systemd 文件夹,所以服务器端这样成功开启了 frps,因为是 centos 系统的缘故吗?软路由没有类似这个自动启的东西吗?

    Supplement 1  ·  Sep 12, 2020
    按照楼下教材:

    编辑 /etc/init.d/frp:#!/bin/sh /etc/rc.common START=90STOP=90SERVICE=frpcUSE_PROCD=1PROC="/root/frp/frpc -c /root/frp/frpc.ini" start_service() { procd_open_instance procd_set_param command $PROC procd_set_param respawn procd_close_instance } service_triggers(){ procd_add_reload_trigger "rpcd"}


    然后输入:/etc/init.d/frp start 回车提示没有权限,我就给 frp 777 权限,再次执行,就提示:

    root@Openwrt:~# /etc/init.d/frp start
    -ash: /etc/init.d/frp: not found

    咋办?
    15 replies    2020-09-14 09:55:49 +08:00
    0ZXYDDu796nVCFxq
        1
    0ZXYDDu796nVCFxq  
       Sep 12, 2020   ❤️ 2
    https://juejin.im/post/6844904014446854158
    用文章里的这个脚本『 OpenWRT/LEDE (编辑 /etc/init.d/frp )』
    Jirajine
        2
    Jirajine  
       Sep 12, 2020 via Android   ❤️ 2
    别闹,lede 啥时候用 systemd 了。

    自启动的话,最简单的是直接把命令写到 /etc/rc.local 里面。或者做成系统服务 /etc/rc.d/里面,具体参考 openwrt 官网的文档。
    CSGO
        3
    CSGO  
    OP
       Sep 12, 2020
    WebKit
        4
    WebKit  
       Sep 12, 2020 via Android
    lede 直接在软件中心下载 frp 就行了。自带的就有
    CSGO
        5
    CSGO  
    OP
       Sep 12, 2020
    @gstqc

    root@Openwrt:~# /etc/init.d/frp start
    -ash: /etc/init.d/frpc: Permission denied

    修改了权限 777 后:

    root@Openwrt:~# /etc/init.d/frp start
    ': No such file or directory.common
    CSGO
        6
    CSGO  
    OP
       Sep 12, 2020
    @WebKit 自带感觉有 bug 。
    WebKit
        7
    WebKit  
       Sep 12, 2020 via Android
    @CSGO 有什么 bug ?我稳定用了几个月了,没发现 bug
    0ZXYDDu796nVCFxq
        8
    0ZXYDDu796nVCFxq  
       Sep 12, 2020
    @CSGO 你在 /etc/init.d/frp 里填错内容了吧
    6IbA2bj5ip3tK49j
        9
    6IbA2bj5ip3tK49j  
       Sep 12, 2020
    https://github.com/kuoruan/luci-app-frpc
    https://github.com/kuoruan/openwrt-frp
    既然对 linux 这些东西不熟,就不要为难自己了。
    ysc3839
        10
    ysc3839  
       Sep 12, 2020 via Android
    ysc3839
        11
    ysc3839  
       Sep 12, 2020 via Android
    @ysc3839 官方源的 frp 已经包含了启动脚本了,安装后即可使用。

    另外,OpenWrt 不使用 systemd,使用的是 procd 。所以不能用 systemd 的服务配置,需要使用 procd 的启动脚本。
    CSGO
        12
    CSGO  
    OP
       Sep 12, 2020 via Android
    @gstqc 我就复制过来,修改了下路径。
    cctv6
        13
    cctv6  
       Sep 12, 2020
    我记得 frp 从 github 下载下来,里面就包含了 systemctl 的 service 文件,只要拷贝到 systemd 对应的目录下就可以了,目录应该是:/usr/lib/systemd/system 。systemd 的具体用法可以看 systemd 的文档,或者看看阮一峰写的一个快速教程。

    还有一个问题,就是楼上说的 lede 不是用的 systemd 。如果不是 systemd 的话,要创建自启动,就可以看看 rc.local,开机的时候执行一下脚本,在脚本里写一下启动 frp 的命令就好了。
    CSGO
        14
    CSGO  
    OP
       Sep 12, 2020 via Android
    我把酷软里的 frp 升级到了最新版,可以用了。
    baobao1270
        15
    baobao1270  
       Sep 14, 2020 via Android
    1. 普通 linux 直接用 release 包里的 systemd 配置就行了
    2. 路由器请使用 luci-app-frpc 谷歌搜一下 eSirPlayground 编译的 ipk 文件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1813 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 16:16 · PVG 00:16 · LAX 09:16 · JFK 12:16
    ♥ Do have faith in what you're doing.