Это немного сложно, но у меня есть Windows 7 vm (virtualbox), и я должен создать постоянное соединение к экземпляру MySQL на моей хост-машине.
Привязка... Я могу сделать это использование mysql привязка по адресу в хосте my.cnf и соответствующее отображение на vm, но каждый раз я изменяю сети (работа, домой, беспроводная связь, или соединенный проводом) IP-адрес моих изменений хост-машины, и я еще должен сбросить связывать адрес на хост-машине и везде (у меня есть сайты на моей хост-машине, а также VM).
Windows VM имеет адаптер NAT (а также соединенный мостом). Я использую NAT определенный 'шлюз по умолчанию' 10.0.4.2 для предназначения для моей хост-машины. Я подтвердил это путем добавления '10.0.4.2 asiteonmyhostmachine.net' к файлу хоста на VM и посещения URL.
Я попробовал играемый вокруг с IP искажением:
ifconfig lo:1 10.0.4.3 up
Я попробовал iptables, на основе некоторых других потоков, которые я считал:
sudo iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 10.0.4.2 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT-p tcp -s 10.0.4.2 --sport 3306 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
У меня не было большой удачи, и я чувствую, что вожусь вокруг в темноте. Используя nmap I видят, что порт 3306 не доступен от 10.0.4.2, таким образом, кажется, что ни одно из вышеупомянутого не работало.
Любые предложения ценились бы, но также включайте метод для тестирования (предложенного) решения.
Спасибо!
iptables
вероятно не инструмент, чтобы сделать то, чего Вы желаете. Однако можно хотеть использовать iptables для блокирования доступа из Интернета.
Сетевой трафик на lo
устройство не должно быть направлено к другому устройству, даже виртуальному устройству. Вероятно, что virtualbox создал br0
устройства или некоторое устройство с br
на имя. IP-адрес этого устройства был бы Вашим лучшим выбором соединиться с mysql на.
виртуальный сервер должен быть в состоянии соединиться непосредственно с mysql сервером, если это слушает на достижимом адресе. mysql свойственно быть настроенным для слушания на обратной петле (127.0.0.1) адрес как меры безопасности. Используйте команду sudo netstat -antp | grep mysql
для определения, на каких IP-адресах mysql
слушает. Если это только послушает на 127.0.0.1
или ::1
, необходимо будет скорректировать mysql конфигурацию. Если это послушает на 0.0.0.0
, то mysql будет достижим на любом общедоступном адресе Вашего сервера.
Из соображений безопасности значение по умолчанию Mysql не предоставляет удаленный доступ корнем.
Для предоставления доступа выполняют эти шаги:
Редактирование конфигурационный файл "/etc/mysql/my.cnf" и удаляют ограничение удаленного доступа
Комментарий следующая строка:
#bind-address = 127.0.0.1
Дают разрешение поддержать соединения от любого IP:
mysql -u root -pROOTPASSWORD
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ROOTPASSWORD' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit
открытый порт Mysql с Iptables:
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
После перезапуска сервиса, возможно соединиться с пользователем root от виртуальной машины
Источники:
https://www.virtualbox.org/
http://www.ubuntu.com/download/server
http://directory.apache.org/
http://www.mysql.com/products/workbench/