用于确定服务创建的 TAP 接口是否已启动的脚本

用于确定服务创建的 TAP 接口是否已启动的脚本

我的系统有一个 SoftEther VPN 服务,它在启动时创建自己的 TAP 接口,并在停止时删除它。但即使在 VPN 上运行 DHCP,TAP 也不会在出现时配置它自己的 IP,也不会配置在ifcfg特定于它的文件中配置的静态 IP。但是,如果我执行dhclient或运行ifupifcfg当前),它会配置它的 DHCP IP 。

我的问题是,如果接口已启动并运行dhclientifup,无论我想要哪个,我如何编写监控脚本?

答案1

正如我在 Centos7 上所做的那样,我确实使用 sysmtemd-networkd 解决了这个问题。它侦听您在 /etc/systemd/network/ 上指定的所有网络设备

例如,20-static-tap_clients.network 如下所示:

[Match]
Name=tap_clients
[Network]
Address=192.168.103.1/24

更改tap_clients您的点击接口名称并修改 IP 地址为您想要的 IP。

您必须禁用 NetworkManager 服务并启用 systemd-networkd。至于softether,我也创建了单元文件并将它们放在/usr/lib/systemd/system上

softether-vpnserver.service

[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service
ConditionPathExists=!/opt/vpnserver/do_not_run

[Service]
Type=forking
EnvironmentFile=-/opt/vpnserver
ExecStart=/opt/vpnserver/vpnserver start
ExecStop=/opt/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=softether-vpnserver.service

Softether-VPNbridge.service

[Unit]
Description=SoftEther VPN Bridge
After=network.target auditd.service
ConditionPathExists=!/opt/vpnbridge/do_not_run

[Service]
Type=forking
ExecStart=/opt/vpnbridge/vpnbridge start
ExecStop=/opt/vpnbridge/vpnbridge stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=softether-vpnserver.service

和 softether-vpnclient.service

[Unit]
Description=SoftEther VPN Client
After=network.target auditd.service
ConditionPathExists=!/opt/vpnclient/do_not_run

[Service]
Type=forking
EnvironmentFile=-/opt/vpnclient
ExecStart=/opt/vpnclient/vpnclient start
ExecStop=/opt/vpnclient/vpnclient stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=softether-vpnclient.service

答案2

您可以在 while 循环中监视接口,如下所示:

#!/bin/sh
trap exit 1 2 15
while true; do
    if [ "$(ip l | fgrep IFACE: | wc -l)" -gt 0 ]; then
        # run dhclient/ifup for your IFACE here
        break
    fi
    sleep 1
done

但我希望 SoftEther VPN 可以配置 TAP 接口,在程序的配置文件或 gui 中,必须有一个用户编写的脚本选项或控制 TAP 接口配置的选项。

相关内容