如何在 centos 7.6 上将 stop-start-restart-status stunnel 作为服务

如何在 centos 7.6 上将 stop-start-restart-status stunnel 作为服务

我在centos 7.6上安装了stunnel 4.5。

sudo yum -y install stunnel

现在我想在 centos 7.6 上将 stop-start-restart-status stunnel 作为一项服务。
下面的命令不起作用:

systemctl start stunnel

我怎样才能做到这一点?


看看这个链接=starting_stopping_restarting_stunnel
命令

stunnel /etc/stunnel/stunnel.conf

作品。
但命令

kill `cat /var/run/stunnel/stunnel.pid`

不起作用。它告诉:

cat: /var/run/stunnel/stunnel.pid: 没有这样的文件或目录


编辑 :
这是stunnel.conf我在此路径 ( ) 中创建的文件/etc/stunnel/stunnel.conf

client = no
[squid]
accept  = 1800
connect = 127.0.0.1:8080
cert = /etc/stunnel/stunnel.pem

效果很好。

答案1

我在这里找到了解决方案:
centos-with-selinux-systemd-and-stunnel
和这里 :
centos-stunnel-systemd


以下是stunnel.servicecentos 7.6 的变化:

[Unit]
Description=SSL tunnel for network daemons
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=stunnel.target

[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/pkill stunnel

# Give up if ping don't get an answer
TimeoutSec=600

Restart=always
PrivateTmp=false

现在您可以将 stunnel 作为服务启动-启用-停止:

sudo systemctl start stunnel.service
sudo systemctl enable stunnel.service
sudo systemctl stop stunnel.service

答案2

安装隧道:

sudo yum install stunnel -y

配置隧道:

创建自定义 stunnel cfg 以建立与某些 AWS Redis 的连接(仅作为示例):

sudo touch /etc/stunnel/redis-cli.conf && echo "fips = no
setuid = root
setgid = root
pid = /var/run/stunnel.pid
debug = 7 
delay = yes
options = NO_SSLv2
options = NO_SSLv3
[redis-cli]
   client = yes
   accept = 127.0.0.1:6379
   connect = clustercfg.someredis.example.cache.amazonaws.com:6379" > /etc/stunnel/redis-cli.conf

启动隧道:

sudo stunnel /etc/stunnel/redis-cli.conf

检查隧道工作:

sudo netstat -tulnp | grep -i stunnel

停止隧道:

可能有几个隧道过程:

[root@someserver ~]# ps aux | grep stunnel | grep -v grep | awk '{print $2}'
13527
13528
13529
13530
13531
13532

下面的 bash 一行循环可以杀死它们:

if kill $(ps aux | grep stunnel | grep -v grep | awk '{print $2}'); then echo "Done"; else echo "No ps left"; fi

删除隧道:

sudo yum remove stunnel

*提供的说明也适用于 Amazon Linux 2。

答案3

检查/var/run/stunnel目录。可能有一个/var/run/stunnel/pid文件(与 相对/var/run/stunnel/stunnel.pid)。或者其他一些类似的文件。如果有 - 只需kill `cat /var/run/stunnel/pid`根据文件名将命令更改为或类似的命令即可。

相关内容