Конфигурация VPN не работает и нет журналов Guix SD
Я пытаюсь настроить свою систему Guix для автоматического подключения к моему VPN-провайдеру путем запуска клиентской службы OpenVPN, но она не запускается, и я не могу определить, что происходит, потому что нет журналов для записи VPN
/var/log/
. Я также искал журналы VPN в
/var/log/guix-daemon.log
но он не показывает ничего, относящегося к запуску службы VPN.
К сожалению,
shepherd
не предоставляет много информации (которую я смог найти) о конкретном сбое, т.е.
verbose
вариант или что-нибудь, что я могу использовать, чтобы определить, что идет не так.
Моя конфигурация VPN в конфигурации моей системы такова:
(openvpn-client-service
#:config (openvpn-client-configuration
(proto 'tcp)
(ca 'disabled)
(cert 'disabled)
(key 'disabled)
(auth-user-pass "/path/to/my/user/credentials")
(comp-lzo? #f)
(fast-io? #t)
(remote (map (lambda (ip)
(openvpn-remote-configuration
(name ip)
(port 443)))
'("IP address 1" "IP address 2")))))
Глядя на руководство по информации о VPN, я не вижу, где я ошибаюсь. Любая помощь в любом из двух пунктов ниже очень ценится:
- Выясняем, как заставить пастыря писать логи.
- Определение того, почему моя конфигурация не работает.
ОБНОВИТЬ:
Я забыл упомянуть, что я думаю, что проблема с журналами может быть связана с ошибкой в следующей функции в
vpn.scm
(но я все еще недостаточно знаком с Guix/Shepherd, чтобы знать, действительно ли это ошибка или нет):
Заметь
log-file
объявлен, но на самом деле не используется - если только он не используется в расширении макроса или что-то в этом роде, чего я не вижу.
(define (openvpn-shepherd-service role)
(lambda (config)
(let* ((config-file (openvpn-config-file role config))
(pid-file ((match role
('server openvpn-server-configuration-pid-file)
('client openvpn-client-configuration-pid-file))
config))
(openvpn ((match role
('server openvpn-server-configuration-openvpn)
('client openvpn-client-configuration-openvpn))
config))
(log-file (match role
('server "/var/log/openvpn-server.log")
('client "/var/log/openvpn-client.log"))))
(list (shepherd-service
(documentation (string-append "Run the OpenVPN "
(match role
('server "server")
('client "client"))
" daemon."))
(provision (match role
('server '(vpn-server))
('client '(vpn-client))))
(requirement '(networking))
(start #~(make-forkexec-constructor
(list (string-append #$openvpn "/sbin/openvpn")
"--writepid" #$pid-file "--config" #$config-file
"--daemon")
#:pid-file #$pid-file))
(stop #~(make-kill-destructor)))))))