Сценарий для определения, работает ли интерфейс TAP, созданный службой

"Уловка" заключается в том, что whiptail (например, диалог) записывает свои сообщения по умолчанию в стандартную ошибку , поскольку обычная программа использует стандартный вывод для обновления экрана.

Вы можете перенаправить стандартную ошибку, поместив 2 рядом с меткой > :

#!/bin/bash
/usr/bin/whiptail --infobox 'Hello World.' 7 25 2>/dev/tty1

Дополнительная литература:

1
23.10.2015, 13:23
2 ответа

Как я делал на Centos7, я решил эту проблему с помощью sysmtemd-networkd. Он прослушивает все сетевые устройства, указанные вами в /etc/systemd/network/

Например, 20-static-tap_clients.network выглядит так:

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

Изменив tap_clients с именем вашего интерфейса tap и изменив de 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
1
29.04.2021, 00:22

Вы можете наблюдать за интерфейсом в цикле 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, должна быть опция для сценария, который пишет пользователь, или опции, которые управляют конфигурацией интерфейса TAP где-нибудь в конфигурации файл (ы) или графический интерфейс программы.

0
29.04.2021, 00:22

Теги

Похожие вопросы