V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
CSGO
V2EX  ›  问与答

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

  •  
  •   CSGO · 2020-09-12 10:47:32 +08:00 · 5337 次点击
    这是一个创建于 1526 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是使用 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 系统的缘故吗?软路由没有类似这个自动启的东西吗?

    第 1 条附言  ·  2020-09-12 11:27:31 +08:00
    按照楼下教材:

    编辑 /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 条回复    2020-09-14 09:55:49 +08:00
    0ZXYDDu796nVCFxq
        1
    0ZXYDDu796nVCFxq  
       2020-09-12 10:51:52 +08:00   ❤️ 2
    https://juejin.im/post/6844904014446854158
    用文章里的这个脚本『 OpenWRT/LEDE (编辑 /etc/init.d/frp )』
    Jirajine
        2
    Jirajine  
       2020-09-12 10:53:54 +08:00 via Android   ❤️ 2
    别闹,lede 啥时候用 systemd 了。

    自启动的话,最简单的是直接把命令写到 /etc/rc.local 里面。或者做成系统服务 /etc/rc.d/里面,具体参考 openwrt 官网的文档。
    CSGO
        3
    CSGO  
    OP
       2020-09-12 11:00:11 +08:00
    WebKit
        4
    WebKit  
       2020-09-12 11:02:41 +08:00 via Android
    lede 直接在软件中心下载 frp 就行了。自带的就有
    CSGO
        5
    CSGO  
    OP
       2020-09-12 11:12:31 +08:00
    @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
       2020-09-12 11:12:48 +08:00
    @WebKit 自带感觉有 bug 。
    WebKit
        7
    WebKit  
       2020-09-12 11:23:42 +08:00 via Android
    @CSGO 有什么 bug ?我稳定用了几个月了,没发现 bug
    0ZXYDDu796nVCFxq
        8
    0ZXYDDu796nVCFxq  
       2020-09-12 12:52:32 +08:00
    @CSGO 你在 /etc/init.d/frp 里填错内容了吧
    6IbA2bj5ip3tK49j
        9
    6IbA2bj5ip3tK49j  
       2020-09-12 13:33:31 +08:00
    https://github.com/kuoruan/luci-app-frpc
    https://github.com/kuoruan/openwrt-frp
    既然对 linux 这些东西不熟,就不要为难自己了。
    ysc3839
        10
    ysc3839  
       2020-09-12 14:17:03 +08:00 via Android
    ysc3839
        11
    ysc3839  
       2020-09-12 14:19:18 +08:00 via Android
    @ysc3839 官方源的 frp 已经包含了启动脚本了,安装后即可使用。

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

    还有一个问题,就是楼上说的 lede 不是用的 systemd 。如果不是 systemd 的话,要创建自启动,就可以看看 rc.local,开机的时候执行一下脚本,在脚本里写一下启动 frp 的命令就好了。
    CSGO
        14
    CSGO  
    OP
       2020-09-12 16:57:09 +08:00 via Android
    我把酷软里的 frp 升级到了最新版,可以用了。
    baobao1270
        15
    baobao1270  
       2020-09-14 09:55:49 +08:00 via Android
    1. 普通 linux 直接用 release 包里的 systemd 配置就行了
    2. 路由器请使用 luci-app-frpc 谷歌搜一下 eSirPlayground 编译的 ipk 文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:57 · PVG 08:57 · LAX 16:57 · JFK 19:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.