在debian中添加iptables规则以打开一个新端口

时间:2014-02-28 07:35:50

标签: debian iptables

我正在尝试在我的Debian系统中打开iptables中的端口3306以允许访问MySQL服务器。我输入了这个命令:

root@debian:/# sudo iptables -A INPUT -p tcp --dport 3306 ACCEPT
root@debian:/# iptables-save

我输入了新的连接,它已保存在iptables中,因为我可以看到iptables列表中的新规则由iptables-save命令生成。

但是,这个debian系统在Windows 7上的VM上运行,我无法从Windows远程登录到此端口。不确定我应该在哪里检查这个问题的解决方案。

2 个答案:

答案 0 :(得分:44)

关于您的命令行:

root@debian:/# sudo iptables -A INPUT -p tcp --dport 3306 --jump ACCEPT
root@debian:/# iptables-save
  • 您已经过root身份验证,因此sudo是多余的。

  • 您在-j参数之前缺少--jumpACCEPT(只是输入错误并且您正确插入它)。

    < / LI>

关于你的问题:

如果您在问题中指出正确插入iptables规则,则问题可能与您正在使用的虚拟机管理程序(虚拟机提供商)有关。

如果您提供管理程序名称(VirtualBox,VMWare?),我可以进一步指导您,但这里有一些您可以先尝试的建议:

检查您的vmachine网络设置并:

  • 如果设置为NAT,则无法从基本机器连接到vmachine。

  • 如果设置为Hosted,则必须首先配置其网络设置,通常是为它们提供192.168.56.0/24范围内的IP,因为这是管理程序用于此目的的默认值。 / p>

  • 如果设置为Bridge,则与Hosted相同,但只要IP范围对您的配置有意义,您就可以配置它。

希望这有帮助。

答案 1 :(得分:9)

(我认为你通过完全放弃防火墙(iptables -P INPUT ACCEPT; iptables -P OUTPUT ACCEPT; iptables -F)得出结论是iptables问题,并确认你可以从你的服务器连接到MySQL服务器Windows框?)

INPUT表中的某些先前规则可能是拒绝或丢弃数据包。您可以通过在顶部插入新规则来解决这个问题,尽管您可能希望查看现有规则以确定这是否合理:

iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT

请注意,iptables-save不会持久保存新规则(即重新启动) - 您需要为此找出其他内容。我通常的路径是将iptables-save输出存储在一个文件(/etc/network/iptables.rules或类似文件)中,然后在/ etc / network / interfaces中加载一个pre-up语句。