如何允许对外访问防火墙中的端口

d-_*_*_-b 5 linux firewall

我正在做一个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
Run Code Online (Sandbox Code Playgroud)

也许有一些规则我不能file_get_contents在两个不同的服务器/IP 之间使用?

我想现在我会使用curl,但有兴趣知道什么在这里不起作用......

Not*_*aeL 3

您正在连接到目标上的端口 8983,因此您必须允许输出流量到 上的该端口server 2,您是:

iptables -A OUTPUT -p tcp -d 123.123.123.123 --dport 8983 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

server 2一般来说,您还应该接受相关和已建立连接的传入流量:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记添加相应的规则server 1

iptables -A INPUT -p tcp -m tcp --dport 8983 -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

如果设置此规则后仍然无法连接,则可能被server 1和之间的中间防火墙阻止server 2

如果情况并非如此,则可能server 1位于 NAT 后面,您必须将 NAT 路由器设置为将 8983 的传入连接转发到server 1该路由器后面的同一端口。