我正在做一个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
,但有兴趣知道什么在这里不起作用......
您正在连接到目标上的端口 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
该路由器后面的同一端口。