Добавление правила в iptables в debian для открытия нового порта
Я пытаюсь открыть порт 3306 в iptables в моей системе Debian, чтобы разрешить доступ к серверу MySQL. Для которого я ввел эту команду:
root@debian:/# sudo iptables -A INPUT -p tcp --dport 3306 ACCEPT
root@debian:/# iptables-save
Я установил новое соединение, и оно было сохранено в iptables, поскольку я вижу новое правило в списке iptables, сгенерированном командой iptables-save.
Тем не менее, эта система Debian работает на виртуальной машине через Windows7, и я не могу подключиться через telnet из Windows к этому порту. Не уверен, где я должен проверить решение этой проблемы.
2 ответа
О вашей командной строке:
root@debian:/# sudo iptables -A INPUT -p tcp --dport 3306 --jump ACCEPT
root@debian:/# iptables-save
Вы уже аутентифицированы как
root
такsudo
там избыточно.Вы скучаете по
-j
или же--jump
как раз передACCEPT
параметр (только что подумал, что это опечатка, и вы вставляете его правильно).
О вашем вопросе:
Если вы вставляете iptables
Правило правильно, как вы указали в вопросе, возможно, проблема связана с гипервизором (провайдером виртуальной машины), который вы используете.
Если вы укажете имя гипервизора (VirtualBox, VMWare?), Я могу вам в этом помочь, но вот несколько советов, которые вы можете попробовать сначала:
проверьте настройки сети vmachine и:
если он установлен на NAT, вы не сможете подключиться с вашей базовой машины к vmachine.
если для него установлено значение "Размещено", необходимо сначала настроить его сетевые параметры, обычно он предоставляет им IP-адрес в диапазоне 192.168.56.0/24, поскольку гипервизоры по умолчанию используют его для этого.
если он установлен на Bridge, то же самое, что и Hosted, но вы можете настроить его, когда диапазон IP имеет смысл для вашей конфигурации.
Надеюсь это поможет.
(Я предполагаю, что вы пришли к выводу, что это проблема iptables, полностью сбросив брандмауэр (iptables -P INPUT ACCEPT; iptables -P OUTPUT ACCEPT; iptables -F), и подтвердили, что вы можете подключиться к серверу MySQL из окна Windows?)
Некоторое предыдущее правило в таблице INPUT, вероятно, отклоняет или отбрасывает пакет. Вы можете обойти это, вставив новое правило вверху, хотя вы можете просмотреть существующие правила, чтобы понять, разумно ли это:
iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
Обратите внимание, что iptables-save не будет сохранять новое правило постоянно (т. Е. При перезагрузках) - для этого вам нужно будет найти что-то еще. Мой обычный путь - сохранить выходные данные iptables-save в файле (/etc/network/iptables.rules или аналогичном) и затем загрузить их с предварительным оператором в /etc/network/interfaces).