web-dev-qa-db-ja.com

ファイアウォールのポートへの発信アクセスを許可するにはどうすればよいですか

file_get_contentsを実行していますが、Connection refusedを取得しています

以下を使用して、server2からserver1へ、またはその逆の発信接続を許可しました。しかし、私はまだfailed to open stream: Connection refusedを取得しています

iptables -A OUTPUT -p tcp -d 123.123.123.123 --dport 8983 -j ACCEPT
iptables -A INPUT  -p tcp -s 321.321.321.321 --dport 8983 -j ACCEPT

たぶん、2つの異なるサーバー/ IP間でfile_get_contentsを使用できないルールがありますか?

今のところcurlを使用すると思いますが、ここで機能していないものを知りたいと思っています...

4
d-_-b

宛先のポート8983に接続しているため、server 2のそのポートへの出力トラフィックを許可する必要があります。

iptables -A OUTPUT -p tcp -d 123.123.123.123 --dport 8983 -j ACCEPT

また、関連する確立された接続全般について、server 2で着信トラフィックを受け入れる必要があります。

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

また、server 1に対応するルールを追加することを忘れないでください。

iptables -A INPUT -p tcp -m tcp --dport 8983 -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

このルールを設定しても接続できない場合は、server 1server 2の間の中間ファイアウォールによってブロックされている可能性があります。

そうでない場合は、server 1がNATの背後にあり、着信接続を8983に転送するようにNATルーターを設定する必要があります。そのルーターの背後にあるserver 1の同じポート。

2
NotGaeL