În primul rând, această problemă devine o problemă numai pe CentOS8, în timp ce funcționează bine pe CentOS7. Aceasta este versiunea:
# cat /etc/redhat-release
CentOS Linux versiunea 8.3.2011
Am încercat să fac un serviciu pentru a executa comenzi bash pentru a schimba ruta.
Aici este bash-ul executabil /root/route_degrade.sh
:
#!/bin/bash
# asigurați rolul de router
echo "1" > /proc/sys/net/ipv4/ip_forward
systemctl porni firewalld
firewall-cmd --add-masquerade
#firewall-cmd --add-port=1194/udp
firewall-cmd --add-service=openvpn
# degradați routerul implicit original la router numai LAN
cloudroute=$(rută ip | implicit grep | cut -d " " -f 3)
dacă [[ $cloudroute == 10.* ]]; atunci
ip route add 10.0.0.0/8 prin $cloudroute
ip route del default
fi
iesirea 0
Acest executabil este absolut OK, deoarece l-am executat singur în directorul rădăcină de ./route_degrade.sh
.
și aici este autoinit.service
în /usr/lib/systemd/system
:
[Unitate]
Descriere=Modifică permanent ruta implicită la Rută în cloud
După=firewalld.service
#Before=openvpn@Client_d.service
[Serviciu]
Tip = notificare
ExecStart=/root/route_degrade.sh
PrivateTmp=adevărat
[Instalare]
WantedBy=multi-user.target
Dar continuă să eșueze, chiar și după ce reîncarc fișierele de serviciu systemctl daemon-reload
și reporniți-l, aici este starea de systemd
:
â autoinit.service - Schimbă permanent ruta implicită la Rută în cloud
Încărcat: încărcat (/usr/lib/systemd/system/autoinit.service; dezactivat; presetarea furnizorului: dezactivată)
Activ: eșuat (Rezultat: protocol) din sâmb. 2022-03-26 17:03:18 CST; acum 17 ani
Proces: 6924 ExecStart=/root/route_degrade.sh (code=exited, status=0/SUCCESS)
PID principal: 6924 (cod=ieșit, stare=0/SUCCESS)
26 mar 17:03:17 10-13-107-213 systemd[1]: Începerea modificărilor Ruta implicită către Rută în cloud Permanent...
26 mar 17:03:17 10-13-107-213 route_degrade.sh[6924]: Avertisment: DEJA_ENABLED: mascarada deja activată în „public”
26 mar 17:03:17 10-13-107-213 route_degrade.sh[6924]: succes
26 mar 17:03:18 10-13-107-213 route_degrade.sh[6924]: Avertisment: ALREADY_ENABLED: „openvpn” deja în „public”
26 mar 17:03:18 10-13-107-213 route_degrade.sh[6924]: succes
26 mar 17:03:18 10-13-107-213 systemd[1]: autoinit.service: Eșuat cu rezultatul „protocol”.
26 mar 17:03:18 10-13-107-213 systemd[1]: Eșuat la pornire Modificări Ruta implicită către Rută în cloud Permanent.
Nu știu unde este greșit, evident că a executat scriptul bash și firewall-cmd
comenzile aruncate succes
și captează codul de ieșire 0. Deci, ce face Eșuat cu rezultatul „protocol”
Rău?