smtpd
我的网络服务器上的进程列表中有许多分支。这是什么意思?
我的邮箱满了吗?
postfix 2662 0.0 0.9 106336 4856 ? S 17:37 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 2800 0.0 0.9 106336 4860 ? S 15:59 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 3644 0.0 0.9 106336 4864 ? S 13:47 0:00 smtpd -n
smtp -t inet -u -c -o stress
postfix 3732 0.0 0.9 106336 4872 ? S 14:36 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 3835 0.0 0.9 106336 4868 ? S 14:36 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 4309 0.0 0.9 106336 4864 ? S 13:48 0:00 smtpd
-n smtp -t inet -u -c -o stress
postfix 4603 0.0 0.9 106336 4860 ? S 16:13 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 4843 0.0 0.9 106336 4864 ? S 13:49 0:00 smtpd -n
smtp -t inet -u -c -o stress
我的进程列表中有很多这样的行。 pstree 的输出给了我:
├─master─┬─anvil
│ ├─cleanup
│ ├─pickup
│ ├─proxymap
│ ├─qmgr
│ └─100*[smtpd]
编辑:最近我更改了 mysql 以从本地主机侦听我的外部 IP。现在我在邮件日志中收到此错误:
warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on
'127.0.0.1' (111)
May 21 22:23:00 postfix/trivial-rewrite[15741]: fatal: mysql:/etc/postfix/mysql-
virtual_mailbox_domains.cf(0,lock|fold_fix): table lookup problem
May 21 22:23:01 postfix/smtpd[31036]: warning: problem talking to service rewrite:
Success
May 21 22:23:01 postfix/smtpd[30757]: warning: problem talking to service
rewrite:
Connection reset by peer
它淹没了我的日志,并且已经超过 600MB。如何更改 postfix 来监听我的外部 IP?我需要从我的家庭位置而不是从本地主机连接到 mysql?
答案1
smtpd 由 Postfix 执行来处理传入邮件(本地或远程)。如果您一次运行 100 个邮件,我建议您的服务器正在处理大量邮件。如果您认为自己没有生成那么多邮件,则您的服务器可能会收到大量被退回的邮件,或者正在发送大量您不知道的邮件。
smtpd 进程数量的默认限制是 100,您似乎一直都在达到这个限制。
检查后缀批次以了解它在做什么。
如果这些是合法的连接,但您想要更少的连接,您可以使用,
/etc/postfix/main.cf:
default_process_limit = 10
更改限制。
您的更新显示该问题与 MySQL 连接有关。与其他答案一样,您可以修复 MySQL 以侦听 127.0.0.1 和外部 IP 地址。停止 MySQL 对本地连接的监听是不寻常的。
对于 MySQL,我将绑定地址设置为 0.0.0.0,这会强制它监听所有接口,或者只是注释掉配置文件中的绑定地址部分(这会实现相同的效果)。
答案2
您从错误日志中引用的错误表明Postfix无法连接到127.0.0.1上的MySQL服务器。这是因为您告诉 MySQL 服务器不要侦听 127.0.0.1。进程计数较高可能是由于多次尝试查询 MySQL 进行虚拟邮箱查找而失败。
您需要告诉 Postfix 使用 MySQL 实际监听的地址尝试连接到 MySQL 服务器。如果您的/etc/hosts
文件有主机名条目,则使用该条目。否则,请使用您配置 MySQL 进行侦听的 IP 地址。
假设你有alias_maps = mysql:/etc/postfix/mysql-aliases.cf
Postfix 的main.cf
文件,那么你只需要更新/etc/postfix/mysql-aliases.cf
如下:
hosts = a.b.c.d
a.b.c.d
你配置MySQL监听的地址在哪里。