如何访问 AWS 上的端口 10,000?

如何访问 AWS 上的端口 10,000?

如何访问 Amazon Web Services 上的端口 10000?我已将端口 10,000 添加到安全组,但仍然无法访问它。

图片

我只能在本地访问该服务。

[root@ip-172-31-15-65 ~]# curl -I http://localhost:10000
HTTP/1.0 200 Document follows
Date: Sat, 5 Apr 2014 03:03:40 GMT
Server: MiniServ/1.680

当我尝试从我的外部(到 AWS)IP 时,它不起作用。

$ curl -I http://54.186.222.91:10000
curl: (28) Connection timed out after 300138 milliseconds

这是 netstat

[root@ip-172-31-15-65 ~]# sudo netstat -tunlp |grep 10000
tcp        0      0 0.0.0.0:10000               0.0.0.0:*                   LISTEN      14258/perl
udp        0      0 0.0.0.0:10000               0.0.0.0:*                               14258/perl

这是 iptables。这是一个全新的实例。

[root@ip-172-31-15-65 ~]# sudo iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

由于某种原因,此命令修复了这个问题。我不明白为什么,因为第 1 行和第 3 行已经全部接受了。

iptables --delete INPUT 5 

以下是详细的 iptables

[root@ip-172-31-15-65 postfix]# iptables -L -nv
Chain INPUT (policy ACCEPT 3348 packets, 173K bytes)
 pkts bytes target     prot opt in     out     source               destination
89357   80M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
  102  5883 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
   14  2248 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 50224 packets, 17M bytes)
 pkts bytes target     prot opt in     out     source               destination

答案1

危险!

请不要只是在这里关闭防火墙并认为这是一个解决方案。你的思路是对的,只是你把调试步骤变成了解决方案。我们应该怎么做呢?

我该如何真正解决这个问题?

嗯,你说得对,你只接受来自 lo 接口的所有内容。所以我们只需要在 REJECT 规则之前允许访问此端口。以下是示例规则,供您设置。我将在下面分解它们?

  • iptables -I INPUT 1 -p tcp --dport 10000 -j ACCEPT
  • iptables -A INPUT -j REJECT
  • /etc/init.d/iptables save

这些命令起什么作用?

第一行告诉 iptables 在第 1 行插入规则-I 1,并允许接受所有前往端口 10000 TCP 的流量。我在此示例中使用规则一,以确保将其置于 REJECT 规则之前。(它还告诉 iptables 跳转-j到 ACCEPT 以允许流量)

第二行告诉 iptables 附加(插入到底部)-A以拒绝所有未在其之前的规则中明确允许的流量。这就是默认拒绝的设置方式,因为如果没有此规则,您可能就不会运行防火墙,如注释中所述。

第三行也是最后一行让 iptables 保存规则,以便它们在重启时能够持久。

我想要启用的其他服务怎么样?

使用上面的第一个示例规则来允许这些。您还应该阅读 iptables 的灵活性,因为它在规则方面功能更强大。

答案2

系统防火墙仅打开了端口 22。

运行system-config-firewall-tui以禁用防火墙,或者开放端口 10000

答案3

由于某种原因,此命令修复了这个问题。

iptables --delete INPUT 5 

我想我明白了为什么现在即使第 1 行和第 3 行已经接受所有。-v我看到loin列,并且lo是接口的名称,ifconfig其中仅用于本地连接。因此除了 22 SSH 之外没有开放任何端口。

相关内容