Ubuntu sunucumda Port 3306 kapatılmış görünüyor


33

İki VPS sunucum var ve ikisi de MySQL yüklü, biri test için, diğeri geliştirme için. Sunucularımdan biri dışarıdan bağlanmama izin vermiyor. Kullanıcı ile;

'Mytestuser' @ '%'

Göre açık liman bulucu , kusurlu sunucusu için bağlantı noktası 3306 kapalı gibi görünüyor. Herhangi bir sorun yaşamadan rastgele portlarda dinleyen kendi C ++ ve Java programlarım var. Bu neden oluyor ve nasıl düzeltebilirim?

Ubuntu, Ubuntu 11.10 (GNU / Linux 2.6.32-042stab072.10 x86_64) 'dir.

Sonuçları netstat -tupleher sunucuda

Suçlu sunucu

tcp        0      0 localhost.lo:submission *:*                     LISTEN      root       39967664    -

Çalışma sunucusu

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -

Yanıtlar:


76

Sorun, sunucunun yalnızca dahili olarak dinlemesiydi.

Çizgi Çıkarma bind-address 127.0.0.1gelen /etc/mysql/my.cnfsorunu çözüldü.

Ubuntu'nun (≥16.04) yeni sürümlerinde bu satırın içinde olabilir /etc/mysql/mysql.conf.d/mysqld.cnf.


2
Bu benim için çalıştı. Doğru dosya adına /etc/mysql/my.cnfdikkat edin /etc/mysql/my.conf.
Larry Battle

Bağlantı adresimi sunucunun harici ip adresiyle eşleştirdim ve bu benim için işe yaradı.
Buttle Butkus

Çizgiyi tamamen kaldır ve sunucu TÜM arayüzleri dinleyecektir
s1mmel

Günümü kurtardın, bu sorunu birkaç haftadır çözmeye çalışıyorsun, teşekkürler!
budiantoip

9

Önerim, portların kapalı olduğundan eminseniz (bir VPS'nin bu portun kapatılmasını garip buluyorum), MySQL'in yapılandırma dosyasını bir başkasını kullanmak üzere değiştirmektir.

Basitçe terminaldeki konfigürasyon dosyasını açın sudo nano /etc/mysql/mysql.confve [mysqld]bölümü arayın . İçinde, okunan satırı arayın port = 3306. Kullanılmayan başka bir bağlantı noktasına değiştirin ve dosyayı kaydedin.

Sonra VPS'yi yeniden başlatın ya da hizmeti yeniden başlatın sudo service mysql restart.

Sadece not etmek gerekirse, dosya mysql.confyukarıda belirtilen dosyada değilse, başka yerlerde de olabilir:

/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf

Ve eğer servicekomut çalışmazsa, o zaman şunu yapın:

sudo /etc/init.d/mysql restart

Sorun devam ederse, o zaman benim durumumda iptables'ı kontrol ederim (bu seçenek olabilirse sadece yeni başlatmak için iptables'daki her şeyi silerdim) ya da herhangi bir güvenlik duvarı etkin seçeneği.

VPS olduklarından, portları engelleyebilecek herhangi bir seçeneğe sahip olup olmadığını görmek için VPS Kontrol Panelini de kontrol ederim.

Bunun dışında nmaphangi portları açtığınızı görmek için VPS'ye koşardım. Hangi portları açtıklarını görmek için VPS dışından çalıştırmanız gerekir.

netstat -tuplen Ayrıca, sunucuda hangi açılan bağlantı noktalarına sahip olduğunuzu ve hangilerinin LISTEN modunda olduğunu görmek de iyi bir fikirdir.


Hey, başka bir limanda denedim ve hala özlüyorum, aynı zamanda 'iptables -A INPUT -i eth0 -p tcp -m tcp --dport PORT -j KABUL' ' denedim ama şans yok :( .. edit im not o eth0 .. belki de stilin ümidi olabilir
Andy

@Andy Daha fazla öneri eklemek için cevap güncellendi.
Luis Alvarado

Önerileriniz için teşekkür ederim Luis, bu konuyla ilgileneceğim.
Andy

Netstat -tuple'ın sonuçlarını soruyla güncelledim. Burada bir sorun var gibi gözüküyor.
Andy

6

Ben değiştirerek bu sabit bind-address 127.0.0.1için bind-address 0.0.0.0de /etc/mysql/mysql.conf.d(bütün bağlantı noktalarında böylece MySQL dinler).

Ayrıca, uzaktan kullanılmak üzere bir mysql kullanıcı hesabı oluşturdum (bkz. Https://stackoverflow.com/a/24171107/132374 ).


6

Bu yöntemi kullanıyorum:

sudo ufw status
sudo ufw allow XXXX/tcp
# use a port other than the default/predictable 3306
# work outside, and close the door when you are done
sudo ufw deny XXXX/tcp

Diğer yapılandırma dosyalarını değiştirmenize gerek yoktur ve varsayılan olarak fazladan bağlantı noktası açılmaz.


sudo ufw allow 3306/tcpDüzenlemeye çalıştım ama izin vermedim
Adam

1

Yapılandırmanız dizinde bulunuyor olabilir /etc/mysql/mysql.conf.d/mysqld.cnf, böyle olup olmadığını kontrol edin.


1
Bunu görmeden üç saat önce anlamaya çalışıyordum, teşekkürler!
Oliver Ni
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.