إعداد SMTP لاستخدام localhost أو 172.17.0.1 لا يعمل، كيف يمكن تصحيح الأخطاء

متابعةً للنقاش من كيفية ضبط إعدادات SMTP لاستخدام localhost؟:

أحاول الاتصال بـ Protonmail Bridge الذي يعمل على الجهاز المضيف، ويفشل مع رسالة “connection refused”. إعداداتي هي:

  DISCOURSE_SMTP_ADDRESS: 172.17.0.1
  DISCOURSE_SMTP_PORT: 1025

الآن، اختبارات nmap:

nmap 127.0.0.1 على الجهاز المضيف يُخرج:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
1025/tcp open  NFS-or-IIS
1042/tcp open  afrog

nmap 172.17.0.1 في حاوية docker لا يُخرج أي منفذ 1025.

لقد جربت أيضًا في ملف app.yml الخاص بي، في قسم expose:

172.17.0.1:1025:1025

ولكن بعد ذلك فشلت حاوية docker في البدء مع خطأ “المنفذ قيد الاستخدام بالفعل”.

أخيرًا، إذا حاولت الاتصال باستخدام openssl من localhost:

openssl s_client -connect 127.0.01:1025 -starttls smtp

فإنها تعمل بشكل جيد؛ ولكن ليس عندما أحاول من حاوية docker:

openssl s_client -connect 172.17.0.1:1025 -starttls smtp

بالتحقق باستخدام ss على الجهاز المضيف:

ss -plnt
State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
LISTEN   0      4096       127.0.0.1:1025      0.0.0.0:*    users:(("proton-bridge",pid=953,fd=12))

ماذا أفعل بشكل خاطئ؟


شيء وجدته في إجابة stackoverflow هذه يقول:

  • ستتمكن فقط من الوصول إلى خدمات المضيف التي إما (أ) تستمع على INADDR_ANY (المعروفة أيضًا باسم 0.0.0.0) أو التي تستمع بشكل صريح على واجهة docker0.

أولاً، لقد تحققت من iptables --list، والذي أعتقد أنه يعطي الإخراج الافتراضي:

iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DOCKER (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:https
ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:http

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-USER (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

الآن، أتساءل عما إذا كانت خدمة Protonmail Bridge التي تستمع على 127.0.0.1:1025 لا تقبل الاتصالات من حاوية Docker لأنها ليست من 127.0.0.1 بالضبط؟

اتضح أن حركة المرور تحتاج إلى إعادة توجيه، اقرأ المزيد هنا:

إعجاب واحد (1)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.