lw1*_*.at 20 debian postfix opendkim
我正在尝试在 Debian 伸展上设置 opendkim,但我无法更改套接字。我想将套接字更改为/var/spool/postfix/opendkim/opendkim.sock以便我可以将它与 postfix 一起使用。
我已经添加Socket local:/var/spool/postfix/opendkim/opendkim.sock到/etc/opendkim.conf
并尝试添加SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock到/etc/default/opendkim(我必须创建)。
无论我更改什么或重新启动 opendkim 的频率如何,它始终/var/run/opendkim/opendkim.sock用作其套接字。
? ~ netstat -a | fgrep LISTEN | grep open
unix 2 [ ACC ] STREAM LISTENING 5534128 /var/run/opendkim/opendkim.sock
? ~ sudo systemctl status opendkim.service
? opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-04-30 12:41:54 CEST; 5min ago
Docs: man:opendkim(8)
man:opendkim.conf(5)
man:opendkim-genkey(8)
man:opendkim-genzone(8)
man:opendkim-testadsp(8)
man:opendkim-testkey
http://www.opendkim.org/docs.html
Process: 25246 ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock (code=exited, status=0/SUCCESS)
Main PID: 25248 (opendkim)
Tasks: 7 (limit: 4915)
CGroup: /system.slice/opendkim.service
??25248 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
??25249 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
Apr 30 12:41:54 vServer systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
Apr 30 12:41:54 vServer systemd[1]: Started OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
Apr 30 12:41:54 vServer opendkim[25249]: OpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?(我想这是我的错误,因为我找不到其他有同样问题的人)
更新:
更改/etc/default/opendkim到SOCKET="inet:8891@localhost"和更改后缀配置中使用这个插座结果inet:localhost:8891: Connection refused
更新2:
我现在已经用 debian 拉伸包中捆绑的文件替换了:
# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
#DAEMON_OPTS=""
# Change to /var/spool/postfix/var/run/opendkim to use a Unix socket with
# postfix in a chroot:
RUNDIR=/var/spool/postfix/var/run/opendkim
#RUNDIR=/var/run/opendkim
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
# default:
SOCKET=local:$RUNDIR/opendkim.sock
# listen on all interfaces on port 54321:
#SOCKET=inet:54321
# listen on loopback on port 12345:
#SOCKET=inet:12345@localhost
# listen on 192.0.2.1 on port 12345:
#SOCKET=inet:12345@192.0.2.1
USER=opendkim
GROUP=opendkim
PIDFILE=$RUNDIR/$NAME.pid
EXTRAAFTER=
Run Code Online (Sandbox Code Playgroud)
包括以下决定套接字的行:
if [ -f /etc/opendkim.conf ]; then
CONFIG_SOCKET=`awk '$1 == "Socket" { print $2 }' /etc/opendkim.conf`
fi
# This can be set via Socket option in config file, so it's not required
if [ -n "$SOCKET" -a -z "$CONFIG_SOCKET" ]; then
DAEMON_OPTS="-p $SOCKET $DAEMON_OPTS"
fi
Run Code Online (Sandbox Code Playgroud)
lw1*_*.at 36
我终于找到了解决方案。
本/etc/init.d/opendkim似乎并没有做任何事情。而是/lib/systemd/system/opendkim.service使用了硬编码错误套接字的服务文件。
但是 debian 包似乎还包含一个生成正确 systemd 服务的 bash。
所以运行后
/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart
Run Code Online (Sandbox Code Playgroud)
并重新启动 opendkim 套接字文件出现在预期的位置,可以通过调用来验证:
tail /var/log/mail.log | grep OpenDKIM
Run Code Online (Sandbox Code Playgroud)
更新:似乎有一个关于这个问题的 debian 错误报告:#861169
由于这个问题仍然经常被阅读,我想让大家知道最近的新闻条目:
[...]
我们提醒用户最好通过编辑 /etc/opendkim.conf 来配置 opendkim。/etc/default/opendkim 中的旧版默认文件仍然可用,脚本 /lib/opendkim/opendkim.service.generate 也是如此。但是,这些没有提供默认配置文件 /etc/opendkim.conf 的附加值。请借此机会检查您的配置设置。
同样从 Debian Bullseye/etc/default/opendkim开始:
# NOTE: This is a legacy configuration file. It is not used by the opendkim
# systemd service. Please use the corresponding configuration parameters in
# /etc/opendkim.conf instead.
#
# Previously, one would edit the default settings here, and then execute
# /lib/opendkim/opendkim.service.generate to generate systemd override files at
# /etc/systemd/system/opendkim.service.d/override.conf and
# /etc/tmpfiles.d/opendkim.conf. While this is still possible, it is now
# recommended to adjust the settings directly in /etc/opendkim.conf.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16012 次 |
| 最近记录: |