Linux Server Python Web File Browser

Merhabalar,

Bu makalede, bir linux server üzerinde Python ile web file browser özelliğinin nasıl kullanılabileceğine dair bilgiler aktarmak istiyorum. Bazı durumlarda bu pratik işlevi kullanmak isteyebilirsiniz.

Eğer sunucunuz üzerinde Python yüklü ise, Python’un dosyaları aktarmak için kullandığı ‘http.server’ modülü ile gelen bu özelliğini kullanabilirsiniz ve web browser üzerinden dosya sistemine ulaşabilirsiniz. Ancak bu özellikle, yalnızca dosyaları indirebilirsiniz ve sunucu üzerine upload yapamazsınız. Yani tek yönlü çalışan bir yapısı olacaktır.

Sunucunuzda Python kurulu değilse, aşağıdaki kurulum makalesine göz atabilir ve kurulumu yapabilirsiniz.

Bu uygulamayı Redhat Server 8.5 üzerinde yapmaktayım. Fakat Python yüklü tüm linux sunucular üzerinde, aşağıdaki yönergelerin aynısını takip ederek bu özelliği kullanabilirsiniz.

Sunucu Local Firewall, benim uygulamam sırasında kapalı durumdadır. Eğer firewall kapatmadan kullanmak isterseniz, aşağıdaki firewall ayarları başlığı altını kontrol ediniz.

Kurulum yapıldıysa ya da hali hazırda yüklü ise, komut satırında aşağıdaki komutu giriyoruz. Burada, sistem üzerinde, kullanılmayan port aralıklarından herhangi bir portu seçebilirsiniz. Bu şekilde http.server modülü, web sunucu gibi davranacak ve bu portu dinlemeye başlayacak.

Örneğin 5050 portunu kullanmak istiyorum. O zaman komutu şu şekilde yazıyorum.

python3.8 -m http.server 5050

Şimdi python sunucusu, her yönden gelecek trafik için 5050 numaralı portu dinlemeye başladı.

Web browser açarak, IP adresini ve python sunucusunun dinlediği port numarasını yazın..

http://IP_Address:5050/

Python sunucusundaki tüm dizinleri içeren bir sayfa açılacaktır. Herhangi bir dizine gidebilir ve istediğiniz dosyaları indirebilirsiniz.

Firewall ayarları

Eğer firewall açık ise web browser’dan bağlanamayacaksınız. Bunun için firewall üzerinde birkaç ayar yapmanız gerekiyor.

Öncelikle, var olan firewall zone’larından default olarak hangi zone’da olduğumuzu kontrol edelim.

firewall-cmd –list-all

Şu anda aktif zone, public zone olarak görünüyor. Buradaki ayarlara bakarsanız, 5050 portu için herhangi bir tanım bulunmamakta. Dolayısıyla bağlantı istekleri reddedilecek. Şimdi bu zone için 5050/tcp portuna izin vereceğiz.

firewall-cmd –zone=public –add-port=5050/tcp –permanent

firewall-cmd –reload

Firewall reload işleminden sonra, tekrar zone ayarlarına bakalım.

Bakınız ports başlığı altında 5050/tcp için izin verildiğini görebiliyoruz. Şimdi sunucu IP adresini ve port numarasını web browser’ınıza girdiğinizde, yukarıdaki başlıkta paylaştığım gibi dosya sistemini görebilir olacaksınız. Sonrasında tek yönlü olarak kullanabilir ve istediğiniz dosyaları sunucudan alabilirsiniz. Bu özelliği kapatmak için ise komut satırında ctrl+c ile port dinleme işleminden çıkış yapabilirsiniz. Böylece web browser erişiminiz de sona erecektir.

Yararlı olması dileğiyle.

Yusuf İşleyen