ec2 インスタンスは、セキュリティ グループでポートを開いた後、インスタンス内からポートへの接続を許可しません。

ec2 インスタンスは、セキュリティ グループでポートを開いた後、インスタンス内からポートへの接続を許可しません。

ポート 80、443、22 (tcp、0.0.0.0/0 および ::/0 からの受信) とすべての送信接続 (0.0.0.0/0 および ::/0 への、すべての tcp および udp) を許可するセキュリティ グループに EC2 インスタンスがあります。

最近メール サーバーをセットアップしたので、0.0.0.0/0 と ::/0 からポート 25/tcp も追加しました。

これで、予想どおりパブリック IP を使用して任意の外部ホストからメール サーバーに接続できるようになりました。問題は発生しません。

ホスト名として または IP として 127.0.0.1を使用してインスタンス内から接続することもできますlocalhost

しかし、インスタンス内からパブリック IP またはホスト名を使用してポート 25 のインスタンスに接続できません。接続が拒否されたりはせず、タイムアウトになるだけです。

インスタンス内の他の開いているポートではこの問題は発生せず、インスタンス シェル内のパブリック IP を使用してポート 80、443、または 22 に完全に Telnet 接続できます。

再起動、停止/開始、さらには最初から新しいセキュリティ グループを作成してインスタンスを切り替えてみるなどしてみました。それでも結果は同じです。外部接続は正常ですが、パブリック IP を使用した内部接続はそのポートでのみ失敗します。

iptables は問題ないように見えます。このポートにのみ影響し、他のポートには影響しないような制限や権限は見当たりません。

このインスタンスではファイアウォールが有効になっていません (Debian buster)

メール サーバーは postfix です (これが何か違いを生むかどうかはわかりません。実際に postfix の設定の問題である場合、サーバー ログに何も表示されず、他のすべての接続ソースが許可されていることに困惑しています...)

答え1

しかし、インスタンス内からパブリック IP またはホスト名を使用してポート 25 のインスタンスに接続できません。接続が拒否されたりはせず、タイムアウトになるだけです。

Amazon EC2 では、インスタンスからの送信 SMTP トラフィックは許可されません (アカウントに対して例外を申請して許可された場合を除く)。つまり、パブリック IP アドレスを使用して、自分のサーバーの SMTP サーバー (または他のユーザーのサーバー) にアクセスすることはできません。

ローカルホストに接続する必要がある場合は、localhost に接続します。

関連情報