我有一个新的安装Debian(wheezy)的虚拟机,我已经安装了节点和mongo。 虚拟机正在使用桥接networking连接,因此我希望能够将我的主机浏览器指向Debian虚拟机的IP地址(端口1337用于我的节点示例,端口28017用于我的mongo状态页面),并查看其中的一个两个服务(节点或mongo)。 我的请求被拒绝了。
据我可以告诉Debian允许默认的所有stream量,你必须手动configurationiptables丢弃stream量。 我已经检查过iptables,它说它设置为允许任何事情通过。 它看起来像这样:
root@devbox:/home/jlewis# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
作为一个testing,我设置nginx,我能够从我的主机到达nginx登陆页面没有问题,所以显然HTTPstream量是允许的。 然后我把nginx设置为向上游转发所有stream量到mongo – 没有问题,我能够看到状态页面。 然后我对我的示例节点服务器也一样,没有问题。 所以httpstream量是好的,但所有其他stream量被阻止。
任何人都知道为什么debian可能会拒绝所有其他stream量比iptables被设置为删除它?
编辑 – 从netstat -nltp输出:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:28017 0.0.0.0:* LISTEN 1762/mongod tcp 0 0 0.0.0.0:51028 0.0.0.0:* LISTEN 1541/rpc.statd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2462/sshd tcp 0 0 127.0.0.1:1337 0.0.0.0:* LISTEN 2794/node tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2274/exim4 tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1762/mongod tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1510/rpcbind tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2189/nginx tcp6 0 0 :::22 :::* LISTEN 2462/sshd tcp6 0 0 :::45335 :::* LISTEN 1541/rpc.statd tcp6 0 0 ::1:25 :::* LISTEN 2274/exim4 tcp6 0 0 :::111 :::* LISTEN 1510/rpcbind
我还没有发表评论,要求澄清…仍在努力我的名声,但这里是:
我可以想象下面的事情来帮助你找出答案:
这应该可以帮助你获得更多的信息,也许可以改进问题。
[编辑]
正如netstat输出显示的那样,正如讨论中所述:在127.0.0.1上监听意味着它们只能从本地主机访问(从虚拟机看),它们应该被绑定到0.0.0.0或虚拟机上的特定IP可以从物理主机到达。
您提到的端口1337和28017(以及25)不在所有接口上进行监听,而只在127.0.0.1或localhost上监听。 所以他们不能在本地机器之外访问。 出于安全原因,这通常是你想要的。
相比之下,22,80,111,45335和51028端口上的服务则被绑定到0.0.0.0或::,因此全世界都可以访问。
如果你确实意味着这些服务可以被全世界访问,那么你必须按照他们各自的configuration指令来configuration它们。