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

Ete*_*ous 24 debian iptables

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

root@debian:/# sudo iptables -A INPUT -p tcp --dport 3306 ACCEPT
root@debian:/# iptables-save
Run Code Online (Sandbox Code Playgroud)

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

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

dio*_*ney 44

关于您的命令行:

root@debian:/# sudo iptables -A INPUT -p tcp --dport 3306 --jump ACCEPT
root@debian:/# iptables-save
Run Code Online (Sandbox Code Playgroud)
  • 您已经过身份验证,root因此sudo在那里是多余的.

  • 你错过了-j或者--jump只是在ACCEPT参数之前(只是打错了,你正确地插入它).

关于你的问题:

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

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

检查您的vmachine网络设置和:

  • 如果它设置为NAT,那么您将无法从基本机器连接到vmachine.

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

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

希望这可以帮助.


use*_*484 9

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

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

iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

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