Iptables 不起作用

Iptables 不起作用

您好,我在 Virtualbox 中安装了 Debian 8 和运行在端口 8000 上的 Web 应用程序。Virtualbox 网络在网络设置中有一个桥接适配器,我可以通过 ssh 从我的电脑连接到那里。Virtualbox 有 ip 地址:192.168.88.65 我的电脑有 ip 地址:192.168.88.51 它在一个站点中。

我希望通过计算机的 8000 端口访问我的 Web 应用程序。但是当我在计算机上运行 nmap 时,我只看到以下端口:

Nmap scan report for test (192.168.88.65)
Host is up (0.0023s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
111/tcp  open  rpcbind
3306/tcp open  mysql

但在 VirtualBox 电脑中却是:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 996 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
111/tcp  open  rpcbind
3306/tcp open  mysql
8000/tcp open  http-alt

我如何才能从我的计算机上看到端口 8000?

我尝试在 VirtualBox 中运行以下命令,但是不起作用:

root @ debian /root ### iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
root @ debian /root ### iptables-save

# Generated by iptables-save v1.4.21 on Mon Mar  6 10:11:58 2017
*filter
:INPUT ACCEPT [57:123601]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [44:124193]
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
COMMIT
# Completed on Mon Mar  6 10:11:58 2017

答案1

您插入的规则iptables是多余的,因为正如命令的输出iptables-save所示,INPUT策略是ACCEPT,因此允许任何连接。

我可能错了,但我怀疑由于您使用的是桥接适配器,它受制于主机上的防火墙规则,不允许您到达目标端口。

除非您确实需要 VM 内部的桥接适配器,否则我建议切换到 NAT 并简单地使用 VirtualBox 的端口转发功能。

在下面Settings > Network > Adapter 1

将字段“附加到”更改为NAT

在“高级”下,点击“端口转发”按钮并添加一个条目:

Name: http (or any name you want)
Protocol: TCP
Host IP: (blank)
Host Port: 8888 (or any port you want)
Guest IP: (blank)
Guest Port: 8000 (match your web app port)

然后,您可以启动您的 VM(客户端),然后从您的主机打开浏览器并通过转到下面的端点访问您的 Web 应用程序(附加您可能需要的任何路径)。

localhost:8888

为了方便起见,如果您的主机是基于 UNIX 的,您可以添加一行如下/etc/hosts

127.0.0.1 myapp.com

然后您可以使用:

myapp.com:8888

相关内容