ฉันมีอินสแตนซ์ EC2 ในกลุ่มความปลอดภัยที่อนุญาตพอร์ต 80, 443 และ 22 (tcp ขาเข้าจาก 0.0.0.0/0 และ ::/0); และทุกการเชื่อมต่อขาออก (ถึง 0.0.0.0/0 & ::/0, tcp & udp ทั้งหมด)

ฉันเพิ่งตั้งค่าเซิร์ฟเวอร์อีเมล ดังนั้นฉันจึงเพิ่มพอร์ต 25/tcp จาก 0.0.0.0/0 และ ::/0 ด้วย

ตอนนี้ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์อีเมลของฉันจากโฮสต์ภายนอกใดๆ โดยใช้ IP สาธารณะตามที่คาดไว้ ไม่มีปัญหา

ฉันยังสามารถเชื่อมต่อจากภายในอินสแตนซ์โดยใช้localhostเป็นชื่อโฮสต์หรือ 127.0.0.1 เป็น ip

แต่ฉันไม่สามารถเชื่อมต่อกับอินสแตนซ์บนพอร์ต 25 จากภายในอินสแตนซ์โดยใช้ IP สาธารณะหรือชื่อโฮสต์ ฉันไม่ได้รับการปฏิเสธการเชื่อมต่อหรืออะไรเลย แค่หมดเวลา

ฉันไม่มีปัญหานี้กับพอร์ตที่เปิดอื่นๆ ในอินสแตนซ์ ฉันสามารถเทลเน็ตไปยังพอร์ต 80, 443 หรือ 22 ได้อย่างสมบูรณ์แบบโดยใช้ IP สาธารณะภายในเชลล์อินสแตนซ์

ฉันได้ลองรีบูต หยุด/เริ่ม และแม้กระทั่งสร้างกลุ่มความปลอดภัยใหม่ตั้งแต่ต้นและเปลี่ยนอินสแตนซ์เป็น ผลลัพธ์ยังคงเหมือนเดิม: การเชื่อมต่อภายนอกใช้ได้ การเชื่อมต่อภายในโดยใช้ IP สาธารณะล้มเหลวบนพอร์ตนั้นเท่านั้น

iptables ดูดี ฉันไม่เห็นข้อ จำกัด หรือการอนุญาตที่จะส่งผลกระทบต่อพอร์ตนี้และไม่ใช่ส่วนอื่น ๆ

ไม่มีการเปิดใช้งานไฟร์วอลล์ในอินสแตนซ์นี้ (Debian buster)

เมลเซิร์ฟเวอร์คือ postfix (ฉันไม่รู้ว่านั่นสร้างความแตกต่างหรือไม่ ถ้าจริง ๆ แล้วเป็นปัญหาการกำหนดค่า postfix ฉันงุนงงที่ฉันไม่เห็นอะไรเลยในบันทึกของเซิร์ฟเวอร์และอนุญาตให้ทุกแหล่งการเชื่อมต่ออื่น ๆ ... )

answer

But I am unable to connect to the instance on port 25 from within the instance using its public ip or hostname. I don't get a connection refused or anything, just a timeout.

Amazon EC2 ไม่อนุญาตการรับส่งข้อมูล SMTP ขาออกจากอินสแตนซ์ (เว้นแต่คุณจะสมัครและได้รับข้อยกเว้นสำหรับบัญชีของคุณ) ซึ่งหมายความว่าคุณไม่สามารถเข้าถึงเซิร์ฟเวอร์ SMTP ของเซิร์ฟเวอร์ของคุณ - หรือของใครก็ตาม - โดยใช้ที่อยู่ IP สาธารณะ

หากคุณต้องการเชื่อมต่อกับโฮสต์ท้องถิ่น ให้เชื่อมต่อกับ localhost