netcatを使用して、ある仮想マシンから別の仮想マシンのポート25に接続しようとしたときにno route to host
pingが可能であることを示すメッセージが表示されます。特定のサブネットのポート 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
。