我无法打开端口 iptables - 命令运行,但端口保持关闭状态

我无法打开端口 iptables - 命令运行,但端口保持关闭状态

我想将我的笔记本端口简单地重定向到 VM 端口(也在我的笔记本中)..

iptables -I INPUT -p tcp --dport 2424 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 2424 -j DNAT --to-destination 192.168.10.10:8000

在网络中的另一台机器上..

$ nmap 192.168.101.199

Starting Nmap 6.40 ( http://nmap.org ) at 2015-07-08 18:52 BRT
Nmap scan report for 192.168.101.199
Host is up (0.0027s latency).
Not shown: 999 closed ports
PORT     STATE SERVICE
8000/tcp open  http-alt

Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

笔记本电脑端口 2424 上的 telnet 也无法工作。

我的代码有什么问题吗?

答案1

我不知道 nmap 默认扫描的范围是否这么高。尝试使用 -p 开关专门扫描 2424。如果我没记错的话,nmap 默认只扫描 1-1024 和某些更高的服务。nmap 可能扫描 65535 个端口,因此默认扫描所有端口会非常费力。

编辑:我检查了文档并且我是正确的,它扫描了 1-1024 以及更高的范围。

答案2

也许我的问题错了。我的情况有点不同。
在我的例子中,我的网络中有一台笔记本电脑,而这台电脑里面有一台虚拟机。
但是……这台虚拟机通过 nat(使用虚拟盒子)访问互联网。然后,我网络中的其他电脑无法访问这台虚拟机。
我的网络范围:192.168.0 - VM 范围:192.168.10
我想要什么?使网络中的所有 PC 都能够通过笔记本电脑上的端口访问 VM 中的服务。

经过一番研究,我发现了自己的错误。当我将笔记本端口 2424 重定向到虚拟机端口 8000 时,它“工作正常”。但情况是:我的虚拟机需要响应网络。如果虚拟机不在我的网络内,它将如何返回某些信息?

所以……除了打开端口并进行转发之外,我还需要在我的笔记本中伪装虚拟机的响应。
到达我的笔记本端口 2424 的所有内容都会转到虚拟机端口 8000。但是当虚拟机返回某些内容时,我需要告诉请求机器谁在响应我的笔记本。:)

经过一大堆废话之后......遵循规则:

iptables -I INPUT -p tcp --dport 2424 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 2424 -j DNAT --to 192.168.10.10:8000
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.10 --dport 8000 -j MASQUERADE

谢谢你们!

相关内容