这是我参与更文应战的第10天,活动概况检查:更文应战

frp 是一个高性能的内网穿透东西,本文将解说怎样运用 systemd 进行处理 frp 服务,坚持 frp 持续正常地作业。

关于 systemd

systemd 是一个专用于 LGitinux 操作体系的体系与服务处理器。当作为建议进程(PID=1)作业时,它将作为初始化体系作业,也就是建议并保护各种用户空间的服务。

在 CentOS 7 上检查一下 systemd 进程:

> ps aux | grep systemd | grep -公积金v grep
root         1  0.0  0.0 191412  3536 ?        Ss   Mar19  21:14 /usr/lib/systemd/systlinux操作体系基础知识emd狗狗币 --switched-root --sysgiteetem --deserialize 21
root       452  0.0  0.1  98664 46160 ?        Ss   Mar19  19:linux常用命令42 /usr/lib/systeGitmd/systemd-journald
root       475  0.0  0.0  43944  1000 ?        Ss   Mar19   0:00 /usr/lib/systemd/实例化类systemd-udevd
db宫颈癌us       629  0.0  0.0  54080  1584 ?        Ss   Mar1github中文官网网页9  20:35 /usr/bin/dbus-daemon --system --address实例化方针有几种方法=systemd: --nofork --nopidfile --syslinux体系装置temd-activation
root       643  0.0  0.0  24692  1508 ?        Ss   Mar19  10:01 /usr/lib/sys操作体系temd/systemd-logind

留意,在 MaxOgithub是干什么的S 上,没有 systemd,替而代之的是 launchctl。

systemd 服务单元

syst公积金emd 具有 11 个单元类型,分别是:服务(service)、套接字(socket)、设备(device)、挂载点(mount)、主动挂载点(automount)、 建议方针(target)、沟通分linux操作体系基础知识区或沟通文件(swap)、被监督的途径(path)、使命计划(timer)、 资源控制组(slice)、一组外部创立的进程(scope)。

其间,服务单元是以 .serv龚俊ice 为后缀实例化类的单元文件,封装了一git教程个被 systemd宫颈癌疫苗 监督与控制的进程。狗狗币

服务的单元文件包含三个部分:[Service]实例化方针的关键字[Unit][Install]

在 GitHub 上下载的 frp 压缩包中现google已包含了对应 frpc 和 frps 的服务的 单元文件操作体系单元模板文件。下面咱们将分别解说依据单元文件和操作体系的五大功用依据单元模板文件进行处理 frps 服务(frpc 服实例化方针有几种方法务类似)。

依据单元文件处理 frps 服务

咱们先运狗狗币用 frps 的单元文件(frps.service)进行处理 frps 服务。

咱们先看一下 frgitips.service 的文件内容:

[Unit]
Description=Frp Server Ser实例化方针有几种方法vice # 服务描绘
After=network.target # frps 将会在 network.service 建议完毕之后再建议
[Service]
Type=si操作体系是一种什么软件mple # 不论进程是否建议成功,systemctl start 都实行成功
User=noLinuxbody # 设置进程在实行时运用的用户
Restart=on-fLinuxailure # on-failure 表明仅在服务进程失常退出时重启
RestartSec=5s # 设置在重启服务前暂停多长时间
ExecStart=/usr/b实例化需求in/frps -c /et操作体系是一种什么软件c/frp/实例化数组frps工商银行.ini # 在建议该服务时需求实行的指令行
[Install]
WantedBy=multi-user.target # 用于 systemctl enable 时创实例化是什么意思立软联接

将这个文件复制linux命令/usr/lib/systemd/system/ 目录下:

sudo cp /path/to/frps.service /usr/lib/systemd/system/

建议 frps:

sudo systemctl start frps

检查 frps 服务的状况:

> sudo systemctl sta操作体系是一种rt frps
● frps.service -宫颈癌前期症状 Frp Server Service
Loaded: loaded (/usr/lib/sys公积金temd/system/frps.service; enabled; vendor prese操作体系是一种什么软件t: disabled)
Active: active (running) since Sat 2021-06-12 01:37:46 CST; 1s ago
Main PID: 23430 (frps)
Tasks: 5
Memory: 8giti.0M
CGroup: /system.slice/frps.service
└─23430 /usr/bin/frps -c /etc/frp/frps.ini
Jun 12 01:37:46 iZwz93g2xezuhc0vzfgsy6Z systemd[1]: Starte实例化一个类d实例化方针是什么意思 Frp Server Service.
Jun 12 01:37:46 iZwz93g2xezuhc0vzfgsy6Z frps[23430]: 2021/06/12操作体系是一种什么软件 01:37:46 [I] [root.go:200] frps uses config file: /etc/frp/frps.ini
Jlinux命令un 12 01:3Linux7:46 iZwz93g2xezuhc0vzfgsy6Z frps[234实例化servlet类反常30]: 2021/06/12 01:37:46 [I] [serlinuxvice.go:192] frps tcp实例化 listen on 0.0.0.0:7000
Jun 12 01:37:46 iZwz93g2xe宫颈癌疫苗zuhc0vzfgsy6Z frps[23430]: 2021/06/12 01:37:46 [I] [root.ggitlabo:209] frps started successfully

连续 frps:

sudo systemctl stop frps

敞开 frps 服务开机自建议:

> sudo systemlinux创立文件ctl enable frps
Created symlink f操作体系是一种rom /etc/systemd/systgithub中文官网网页em/multi-user.target.wants/frps.service to /usr/lib/systemd/system/frps.service.

禁用 frps 服务开机自建议:

> sudo systemctl disab操作体系当时的装备不能运转此应用程序le frps
Removed symlink /操作体系是计算机体系中的etc/systemd/system/multilinux创立文件-user.target.wants/frps.service.

依据单元模板文件处理 frps 服务

frps 的单元模板文件是 frps@.servilinux体系ce,比较单元文件,多了一个 @ 符号。咱们Go能够在 @ 符号和 .service 文件后缀的中心参linux体系与一个参数(这个参数会被用于设置一些替换符,比方 %宫崎骏i),比方 frps@test.service,这样咱们就依据单元模板文件实例化了一个 frps@test 服务。

咱们先看下 frps@linux.service 的内容:

[Unit]
Description=Frp Server Service
After=network.target
[Se实例化方针的关键字rvice]
Type=simple
User=no实例化需求body
Rest操作体系的五大功用art=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/%i.ini
[Install]
WantedBy=multi-user.target

咱们能够发现,ExecStart 中 frps 运用的装备文件的github称号运用了替换符 %i,这个 %i 的值是 @ 符号和 .service 文件后缀中心的内容,比方 frps@test.service,那么 %i 就等于 test,也是说 frps 的装备文件就变成了 /etc/frp/test.ini,这样就能够依据不同的实例选择不同的装备文件。

相同,咱们需求先将 frpsgit命令@.service 文件复制到 /usr/lib/systegit教程md/system/ 目录下:

sudo cp /path/to/frps@.service /usr/lib/systemd实例化需求/system/

如果咱们需求依据 frps@.service 单元模板文件实例化(建议)实例化是什么意思一个服务时,操作体系的五大功用比方 frps@test.service,咱们只需求实行 systemctlgiti轮胎 start 指令,这样就会依据单元模板文件实例化一个服务(咱们并linux命令不需求具有一个单元文件 /usr/lib/systgithub中文官网网页emd/system/frps@tes操作体系的主要功用是t.service):

sudolinux创立文件 systemctl start frps@tlinux命令est

检查 frps@test 服务的状况:

> sudo systemctl status frps@test
● frps@test.service - Frp Servelinux体系r Service
Loaded: loadelinux体系装置d (/usr/lib/systemd/system/frps@.service; disabled; vendor prese操作体系是一种什么软件t: disabled)
Active: active (running) since Sat 2021-06-12 02:02:51 CST; 5s ago
Main PID: 3操作体系是计算机体系中的1171 (frps)
CGroup: /system.slice/system-frps.slice/frps@test.service
└─31171 /usr/bin/frps -c /etc/frp/test.ini
Jun 12 02:02:51 iZwz93g2操作体系是计算机体系中的x操作体系当时的装备不能运转此应用程序ezuhc0vzfgsy6Z systemd[1]: Started工商银行 Frp Server Servi宫颈癌前期症状ce.
Jun 12 02:02:51 iZwz93g2xezuLinuxhc0vzfgsy6Z frps[31171]: 2021/06/12 02:02:51 [I] [root.go:200] frps uses config file: /etc宫颈癌/frp/tgoogleest.ini
Jun 12 02:02:51 iZwz93g2xezuhc0vzfgsy6Z frps[31171]: 2021/06/12 02:02:51 [I] [service.go:192] frps tcp listen on实例化需求 0.0.0.0:7000
Jun 12 02:02:51 iZwgitlabz93g2xezuhc0vzfgsy6Z frps[31171]: 2021/06/12 02:02:51 [I] [root.go:209] frp枸杞s started successfully

连续 frps@test 服务:

sudo systemctl stop frps@test

公积金开 frps@test 服务开机自建议(指向的google是单元模板文件):

> sudo systemctl enable frps@test
Created sym操作体系的五大功用link from /etc/systemdgithub/system/multi-user.target.wa操作体系是一种nt宫颈癌s/frps@test.service to /usr/lib/systemd/system/frps@.service.

禁用宫颈癌 frps@test 服务开机自建议:

> sudo systemctl disable frps@test
Removed symlink /etc/systemd/system/multi-user.target.wa操作体系是一种nts/frps@test.service.

个人博客

frp-with-systemd/