nc ホストへのパスはありませんが、ping は可能です。

nc ホストへのパスはありませんが、ping は可能です。

netcatを使用して、ある仮想マシンから別の仮想マシンのポート25に接続しようとしたときにno route to hostpingが可能であることを示すメッセージが表示されます。特定のサブネットのポート 25 へのトラフィックを許可する 1 つの例外を除き、ファイアウォールのデフォルト ポリシーを削除するように設定しました。 nc を使用して VM 3 からポート 25 の VM 2 に接続できますが、VM 2 から 3 には接続できません。

私のVM2ファイアウォールルールのプレビューは次のとおりです。

スクリーンショット

私のVM 3ファイアウォールルールのプレビューは次のとおりです。

スクリーンショット

リスニングサービスを表示することは、すべてのipv4 IPアドレスとipv6アドレスを*:25リッスンしていることを意味します。:::25エラーがどこにあるのか、なぜ両方のファイアウォールルールが機能せず、ポート25でトラフィックを許可するので、接続する必要があるのか​​わかりません。 2つの違いを比較し、なぜvm3からvm2に接続できるかを調べようとしましたが、設定はまったく同じです。考えられる問題に関する提案はありますか?

iptableサービスを停止するように更新すると、問題は解決しましたが、まだ存在するルールが必要です。

答え1

コンピュータがpingを実行できる場合は、no route to hostファイアウォールがユーザーのアクセスを慎重に拒否していることを意味します(DROP-pingの代わりにICMPメッセージを使用するなど)。

4REJECT行見ましたか?説明と一致します(ICMP xxxで拒否)。問題は、(#)のように見えるREJECT行がルールの途中にあり、次のルールがまったく実行されないことです。これが実際にすべてを網羅する行なのかどうかは言い難いので、出力がiptables -nvL良いでしょう。

これらの REJECT ルールを最後に置くと、すべてが期待どおりに機能します。

答え2

シアンが答えたもちろんそうです。ただし、原因がファイアウォールであってもポート80 / tcpに問題がある場合、通常これが発生するのはプロキシサーバーがあるためです。接続を介して接続する必要があります(またはhttps(443 / tcp)の場合は直接)。一部のプログラムは$http_proxy環境変数を使用します。それ以外の場合は、次のことができます。

http_proxy="http://nameOrIPOfProxy:proxyPort" command

apt次のように設定する必要があるため

Acquire::http::Proxy "http://nameOrIPOfProxy:proxyPort";
Acquire::https::Proxy "false";

存在する/etc/apt/apt.conf.d/proxy.conf

関連情報