{"id":35791,"date":"2025-12-03T22:40:55","date_gmt":"2025-12-03T19:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35791"},"modified":"2025-12-03T22:40:55","modified_gmt":"2025-12-03T19:40:55","slug":"ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/","title":{"rendered":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m"},"content":{"rendered":"<p><body><\/p>\n<h2>SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m<\/h2>\n<h3>Giri\u015f: SSH Port Y\u00f6nlendirmenin Temelleri<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k a\u011f ortamlar\u0131nda, g\u00fcvenli ve esnek ba\u011flant\u0131lar kurmak, sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in temel bir ihtiya\u00e7t\u0131r. Secure Shell (SSH), bu ihtiyac\u0131 kar\u015f\u0131layan en g\u00fc\u00e7l\u00fc ve yayg\u0131n kullan\u0131lan protokollerden biridir. SSH, uzaktaki bir sunucuya g\u00fcvenli bir \u015fekilde eri\u015fim sa\u011flaman\u0131n yan\u0131 s\u0131ra, sundu\u011fu &#8220;port y\u00f6nlendirme&#8221; (port forwarding) veya &#8220;SSH t\u00fcnelleme&#8221; \u00f6zelli\u011fi ile a\u011f ileti\u015fiminde devrim niteli\u011finde \u00e7\u00f6z\u00fcmler sunar. Bu \u00f6zellik, g\u00fcvenlik duvarlar\u0131n\u0131 a\u015fmaktan, k\u0131s\u0131tl\u0131 a\u011flardaki hizmetlere eri\u015fmeye, hatta internet trafi\u011fini g\u00fcvenli bir t\u00fcnel \u00fczerinden y\u00f6nlendirmeye kadar pek \u00e7ok senaryoda kritik bir rol oynar.<\/p>\n<p>Bu makale, SSH port y\u00f6nlendirmenin temellerini, \u00e7al\u0131\u015fma prensiplerini ve farkl\u0131 t\u00fcrlerini (Yerel, Uzak ve Dinamik) derinlemesine inceleyecektir. Her bir t\u00fcr\u00fcn kullan\u0131m senaryolar\u0131n\u0131, komut s\u00f6z dizimlerini, pratik \u00f6rneklerini, avantajlar\u0131n\u0131 ve potansiyel dezavantajlar\u0131n\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klayarak, okuyucular\u0131n bu g\u00fc\u00e7l\u00fc arac\u0131 etkin ve g\u00fcvenli bir \u015fekilde kullanabilmeleri i\u00e7in kapsaml\u0131 bir rehber sunmay\u0131 hedefliyoruz.<\/p>\n<h3>SSH Port Y\u00f6nlendirme Nedir ve Neden Kullan\u0131l\u0131r?<\/h3>\n<p>SSH port y\u00f6nlendirme, SSH protokol\u00fcn\u00fcn sa\u011flad\u0131\u011f\u0131 \u015fifreli bir t\u00fcnel arac\u0131l\u0131\u011f\u0131yla, normalde eri\u015filemeyen a\u011f kaynaklar\u0131na veya hizmetlere g\u00fcvenli bir \u015fekilde eri\u015fim sa\u011flama y\u00f6ntemidir. Temel olarak, bir a\u011f ba\u011flant\u0131s\u0131n\u0131n bir porttan di\u011ferine y\u00f6nlendirilmesini ifade eder, ancak bu y\u00f6nlendirme i\u015flemi SSH&#8217;nin g\u00fcvenli t\u00fcneli \u00fczerinden ger\u00e7ekle\u015fir. Bu sayede, t\u00fcnel i\u00e7indeki t\u00fcm veri trafi\u011fi \u015fifrelenir ve yetkisiz eri\u015fime kar\u015f\u0131 korunur.<\/p>\n<p>SSH port y\u00f6nlendirme, \u00e7e\u015fitli nedenlerle vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir:<\/p>\n<p>*   <strong>G\u00fcvenlik Katman\u0131:<\/strong> A\u00e7\u0131k, \u015fifresiz protokoller (HTTP, Telnet, FTP gibi) \u00fczerinden veri iletmek yerine, SSH t\u00fcneli sayesinde t\u00fcm trafi\u011fi \u015fifreleyerek g\u00fcvenli bir ileti\u015fim kanal\u0131 olu\u015fturur. Bu, \u00f6zellikle hassas verilerin iletilmesi gereken durumlarda kritik \u00f6neme sahiptir.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 A\u015fma:<\/strong> Bir\u00e7ok kurumsal veya kamu a\u011f\u0131, belirli portlara veya IP adreslerine eri\u015fimi k\u0131s\u0131tlayan g\u00fcvenlik duvarlar\u0131na sahiptir. SSH t\u00fcnelleme, bu g\u00fcvenlik duvarlar\u0131n\u0131 a\u015farak, k\u0131s\u0131tl\u0131 a\u011flardaki hizmetlere g\u00fcvenli bir \u015fekilde eri\u015fim imkan\u0131 sunar. \u00d6rne\u011fin, sadece SSH portu (genellikle 22) a\u00e7\u0131k olan bir sunucuya ba\u011flanarak, o sunucunun i\u00e7 a\u011f\u0131ndaki di\u011fer portlara eri\u015filebilir.<br \/>\n*   <strong>A\u011f Topolojisi Basitle\u015ftirme:<\/strong> Karma\u015f\u0131k a\u011f topolojilerinde veya NAT (Network Address Translation) arkas\u0131ndaki hizmetlere eri\u015fmek zor olabilir. SSH t\u00fcnelleme, bu karma\u015f\u0131kl\u0131\u011f\u0131 soyutlayarak, uzak bir hizmeti yerel bir portmu\u015f gibi g\u00f6sterir veya yerel bir hizmeti uzaktaki bir noktadan eri\u015filebilir k\u0131lar.<br \/>\n*   <strong>Hizmetlere Eri\u015fim:<\/strong> Uzaktaki bir veritaban\u0131na, web aray\u00fcz\u00fcne, VPN sunucusuna veya di\u011fer a\u011f hizmetlerine do\u011frudan eri\u015fim m\u00fcmk\u00fcn olmad\u0131\u011f\u0131nda, SSH port y\u00f6nlendirme ile bu hizmetlere sanki yerel a\u011fdaym\u0131\u015f gibi eri\u015fim sa\u011flanabilir. Bu, \u00f6zellikle geli\u015ftirme ve sistem y\u00f6netimi s\u00fcre\u00e7lerinde b\u00fcy\u00fck kolayl\u0131k sa\u011flar.<br \/>\n*   <strong>Anonimlik ve Sans\u00fcr A\u015fma:<\/strong> Dinamik port y\u00f6nlendirme, internet trafi\u011fini uzaktaki bir SSH sunucusu \u00fczerinden y\u00f6nlendirerek, kullan\u0131c\u0131n\u0131n ger\u00e7ek IP adresini gizlemeye ve b\u00f6lgesel sans\u00fcrleri a\u015fmaya yard\u0131mc\u0131 olabilir.<\/p>\n<h3>SSH Port Y\u00f6nlendirme T\u00fcrleri<\/h3>\n<p>SSH port y\u00f6nlendirme temel olarak \u00fc\u00e7 ana t\u00fcre ayr\u0131l\u0131r ve her birinin kendine \u00f6zg\u00fc bir \u00e7al\u0131\u015fma prensibi ve kullan\u0131m amac\u0131 vard\u0131r:<\/p>\n<p>*   <strong>Yerel Port Y\u00f6nlendirme (Local Port Forwarding):<\/strong> Kendi yerel makinenizdeki bir porttan gelen trafi\u011fi, SSH sunucusu \u00fczerinden uzaktaki bir hedefe y\u00f6nlendirir. En yayg\u0131n kullan\u0131lan t\u00fcrd\u00fcr.<br \/>\n*   <strong>Uzak Port Y\u00f6nlendirme (Remote Port Forwarding):<\/strong> SSH sunucusundaki bir porttan gelen trafi\u011fi, SSH istemcisi \u00fczerinden istemcinin yerel a\u011f\u0131ndaki bir hedefe y\u00f6nlendirir. Yerel port y\u00f6nlendirmenin tam tersidir.<br \/>\n*   <strong>Dinamik Port Y\u00f6nlendirme (Dynamic Port Forwarding):<\/strong> Yerel makinenizde bir SOCKS proxy sunucusu olu\u015fturur. Bu proxy \u00fczerinden ge\u00e7en t\u00fcm trafik, SSH sunucusu arac\u0131l\u0131\u011f\u0131yla istenen herhangi bir hedefe y\u00f6nlendirilir. Tek bir t\u00fcnel \u00fczerinden birden fazla hizmete eri\u015fim sa\u011flar.<\/p>\n<p>\u015eimdi bu t\u00fcrlerin her birini daha detayl\u0131 inceleyelim.<\/p>\n<h3>Yerel Port Y\u00f6nlendirme (Local Port Forwarding) Detayl\u0131 \u0130nceleme<\/h3>\n<p>Yerel port y\u00f6nlendirme, SSH t\u00fcnellemenin en temel ve en s\u0131k kullan\u0131lan bi\u00e7imidir. Amac\u0131, yerel makinenizdeki belirli bir portu, SSH sunucusu \u00fczerinden uzaktaki bir hedef sunucu ve portuna g\u00fcvenli bir \u015fekilde ba\u011flamakt\u0131r.<\/p>\n<h4>\u00c7al\u0131\u015fma Prensibi<\/h4>\n<p>Yerel port y\u00f6nlendirme \u015fu ad\u0131mlarla \u00e7al\u0131\u015f\u0131r:<\/p>\n<p>1.  Kullan\u0131c\u0131, yerel makinesinde belirli bir portu (\u00f6rne\u011fin, <code>localhost:8080<\/code>) dinlemeye ba\u015flar.<br \/>\n2.  Bu porta gelen herhangi bir ba\u011flant\u0131, SSH istemcisi taraf\u0131ndan \u015fifrelenir ve SSH sunucusuna g\u00f6nderilir.<br \/>\n3.  SSH sunucusu, \u015fifreli trafi\u011fi al\u0131r, \u015fifresini \u00e7\u00f6zer ve belirlenen uzak hedef sunucu ve portuna (\u00f6rne\u011fin, <code>uzak_hedef_host:uzak_hedef_port<\/code>) iletir.<br \/>\n4.  Uzak hedeften gelen yan\u0131tlar da ayn\u0131 t\u00fcnel \u00fczerinden \u015fifrelenerek SSH sunucusuna, oradan da SSH istemcisine ve son olarak yerel makinedeki uygulamaya iletilir.<\/p>\n<p>Bu sayede, yerel makinedeki bir uygulama, sanki uzaktaki hizmet kendi yerel a\u011f\u0131ndaym\u0131\u015f gibi bu hizmetle ileti\u015fim kurabilir.<\/p>\n<pre>\nYerel Makine (\u0130stemci)         SSH Sunucusu          Uzak Hedef Sunucu\n[Uygulama] <-----> [localhost:YerelPort] <---SSH T\u00fcneli---> [SSH Sunucusu] <-----> [UzakHedefHost:UzakHedefPort]\n<\/pre>\n<h4>Kullan\u0131m Senaryolar\u0131<\/h4>\n<p>*   <strong>Uzak Veritaban\u0131na G\u00fcvenli Eri\u015fim:<\/strong> Geli\u015ftiriciler, yerel geli\u015ftirme ortamlar\u0131ndan, g\u00fcvenlik duvar\u0131 arkas\u0131ndaki veya sadece belirli IP&#8217;lerden eri\u015fime izin veren uzak veritabanlar\u0131na (MySQL, PostgreSQL vb.) g\u00fcvenli bir \u015fekilde ba\u011flanabilirler.<br \/>\n*   <strong>Uzak Web Aray\u00fczlerine Eri\u015fim:<\/strong> Bir sunucudaki y\u00f6netim paneline (\u00f6rne\u011fin, Jenkins, GitLab, cPanel) veya bir uygulaman\u0131n web aray\u00fcz\u00fcne (\u00f6rne\u011fin, Kibana, Grafana) do\u011frudan eri\u015fim engellendi\u011finde, yerel port y\u00f6nlendirme ile bu aray\u00fczlere g\u00fcvenli bir \u015fekilde ula\u015f\u0131labilir.<br \/>\n*   <strong>Yerel Uygulama Testleri:<\/strong> Yerel olarak geli\u015ftirilen bir uygulaman\u0131n, uzaktaki bir API veya hizmetle etkile\u015fimini test etmek i\u00e7in kullan\u0131labilir.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 Arkas\u0131ndaki Hizmetlere Eri\u015fim:<\/strong> \u0130\u00e7 a\u011fda bulunan, ancak d\u0131\u015far\u0131dan do\u011frudan eri\u015filemeyen bir cihaza veya hizmete (\u00f6rn. IP kamera, NAS cihaz\u0131) SSH sunucusu \u00fczerinden eri\u015fim sa\u011flamak.<\/p>\n<h4>S\u00f6z Dizimi ve \u00d6rnekler<\/h4>\n<p>Yerel port y\u00f6nlendirmenin temel s\u00f6z dizimi \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-bash\">ssh -L [yerel_dinleme_portu]:[hedef_host]:[hedef_port] [ssh_kullanici]@[ssh_sunucu]<\/code><\/pre>\n<p>*   <code>-L<\/code>: Yerel port y\u00f6nlendirme yap\u0131laca\u011f\u0131n\u0131 belirtir.<br \/>\n*   <code>[yerel_dinleme_portu]<\/code>: Yerel makinenizde dinlenecek port numaras\u0131. Genellikle 1024 \u00fczeri bir port se\u00e7ilir.<br \/>\n*   <code>[hedef_host]<\/code>: SSH sunucusundan eri\u015filecek olan as\u0131l hedef sunucunun IP adresi veya hostname&#8217;i. Bu, SSH sunucusunun kendisi (<code>localhost<\/code> veya <code>127.0.0.1<\/code>) veya SSH sunucusunun eri\u015febildi\u011fi bir ba\u015fka sunucu olabilir.<br \/>\n*   <code>[hedef_port]<\/code>: Hedef sunucudaki hizmetin dinledi\u011fi port numaras\u0131.<br \/>\n*   <code>[ssh_kullanici]@[ssh_sunucu]<\/code>: SSH ba\u011flant\u0131s\u0131n\u0131n kurulaca\u011f\u0131 uzak SSH sunucusunun kullan\u0131c\u0131 ad\u0131 ve IP adresi\/hostname&#8217;i.<\/p>\n<p><strong>\u00d6rnek 1: Uzaktaki bir web sunucusuna yerelden eri\u015fim<\/strong><\/p>\n<p>Uzak sunucuda <code>example.com<\/code> adresinde \u00e7al\u0131\u015fan bir web sunucusu (port 80) oldu\u011funu ve buna yerel makinenizdeki <code>localhost:8080<\/code> \u00fczerinden eri\u015fmek istedi\u011finizi varsayal\u0131m:<\/p>\n<pre><code class=\"language-bash\">ssh -L 8080:localhost:80 user@example.com<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, taray\u0131c\u0131n\u0131zdan <code>http:\/\/localhost:8080<\/code> adresine gitti\u011finizde, asl\u0131nda <code>example.com<\/code> \u00fczerindeki web sunucusuna ba\u011flanm\u0131\u015f olursunuz. Buradaki <code>localhost<\/code> SSH sunucusunun kendisini ifade eder.<\/p>\n<p><strong>\u00d6rnek 2: G\u00fcvenlik duvar\u0131 arkas\u0131ndaki bir veritaban\u0131na eri\u015fim<\/strong><\/p>\n<p>Bir geli\u015ftirme sunucusu (<code>dev.example.com<\/code>) \u00fczerinde \u00e7al\u0131\u015fan bir MySQL veritaban\u0131 (port 3306) oldu\u011funu ve bu veritaban\u0131n\u0131n sadece <code>dev.example.com<\/code> i\u00e7inden eri\u015filebilir oldu\u011funu varsayal\u0131m. Siz yerel makinenizden bu veritaban\u0131na ba\u011flanmak istiyorsunuz:<\/p>\n<pre><code class=\"language-bash\">ssh -L 3307:192.168.1.10:3306 user@dev.example.com<\/code><\/pre>\n<p>Burada <code>192.168.1.10<\/code>, <code>dev.example.com<\/code> sunucusunun i\u00e7 a\u011f\u0131ndaki veritaban\u0131 sunucusunun IP adresidir. Yerel makinenizde <code>localhost:3307<\/code> portuna ba\u011flanarak, <code>dev.example.com<\/code> \u00fczerinden <code>192.168.1.10:3306<\/code> adresindeki MySQL veritaban\u0131na eri\u015febilirsiniz. Yerel portu 3306&#8217;dan farkl\u0131 se\u00e7memizin nedeni, yerel makinenizde zaten bir MySQL sunucusu \u00e7al\u0131\u015f\u0131yor olabilece\u011fi ihtimalidir.<\/p>\n<p><strong>T\u00fcneli Arka Planda \u00c7al\u0131\u015ft\u0131rma (<code>-fN<\/code>)<\/strong><\/p>\n<p>T\u00fcneli bir terminal oturumu a\u00e7madan arka planda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>-fN<\/code> arg\u00fcmanlar\u0131 kullan\u0131l\u0131r:<\/p>\n<p>*   <code>-f<\/code>: SSH&#8217;nin arka plana gitmesini sa\u011flar.<br \/>\n*   <code>-N<\/code>: Uzak komut \u00e7al\u0131\u015ft\u0131rmamas\u0131n\u0131, sadece port y\u00f6nlendirme yapmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">ssh -fN -L 8080:localhost:80 user@example.com<\/code><\/pre>\n<p>Bu komut, t\u00fcneli arka planda ba\u015flat\u0131r ve terminalinizi serbest b\u0131rak\u0131r. T\u00fcneli kapatmak i\u00e7in, SSH istemcisinin PID&#8217;ini bulup sonland\u0131rman\u0131z gerekir (\u00f6rne\u011fin <code>ps aux | grep ssh<\/code> ile PID&#8217;i bulup <code>kill [PID]<\/code> ile sonland\u0131rmak).<\/p>\n<p><strong>Birden Fazla Port Y\u00f6nlendirme<\/strong><\/p>\n<p>Ayn\u0131 SSH ba\u011flant\u0131s\u0131 \u00fczerinden birden fazla yerel port y\u00f6nlendirme yapmak m\u00fcmk\u00fcnd\u00fcr. Bunun i\u00e7in her bir y\u00f6nlendirme i\u00e7in ayr\u0131 bir <code>-L<\/code> arg\u00fcman\u0131 kullan\u0131l\u0131r:<\/p>\n<pre><code class=\"language-bash\">ssh -L 8080:localhost:80 -L 3307:192.168.1.10:3306 user@example.com<\/code><\/pre>\n<p><strong>Yerel Ba\u011flant\u0131 Noktas\u0131 Dinleme Adresi Belirtme<\/strong><\/p>\n<p>Varsay\u0131lan olarak, yerel dinleme portu sadece <code>localhost<\/code> (127.0.0.1) \u00fczerinden eri\u015filebilir. E\u011fer t\u00fcnelledi\u011finiz servise yerel a\u011f\u0131n\u0131zdaki ba\u015fka cihazlar\u0131n da eri\u015fmesini istiyorsan\u0131z, dinleme adresini <code>0.0.0.0<\/code> olarak belirtebilirsiniz (g\u00fcvenlik a\u00e7\u0131s\u0131ndan dikkatli olunmal\u0131d\u0131r):<\/p>\n<pre><code class=\"language-bash\">ssh -L 0.0.0.0:8080:localhost:80 user@example.com<\/code><\/pre>\n<p>Bu durumda, yerel a\u011f\u0131n\u0131zdaki di\u011fer cihazlar <code>sizin_makinenizin_ip_adresi:8080<\/code> \u00fczerinden uzak web sunucusuna eri\u015febilir.<\/p>\n<h4>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h4>\n<p><strong>Avantajlar\u0131:<\/strong><\/p>\n<p>*   <strong>G\u00fcvenli Eri\u015fim:<\/strong> T\u00fcm trafik \u015fifrelendi\u011fi i\u00e7in g\u00fcvenli bir ileti\u015fim kanal\u0131 sa\u011flar.<br \/>\n*   <strong>Basit Kullan\u0131m:<\/strong> S\u00f6z dizimi nispeten basittir ve kolayca yap\u0131land\u0131r\u0131labilir.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 A\u015fma:<\/strong> K\u0131s\u0131tl\u0131 a\u011flardaki hizmetlere eri\u015fim i\u00e7in idealdir.<br \/>\n*   <strong>Geni\u015f Kullan\u0131m Alan\u0131:<\/strong> Veritabanlar\u0131ndan web sunucular\u0131na kadar bir\u00e7ok farkl\u0131 hizmet i\u00e7in kullan\u0131labilir.<\/p>\n<p><strong>Dezavantajlar\u0131:<\/strong><\/p>\n<p>*   <strong>Tek Y\u00f6nl\u00fc:<\/strong> Her bir hizmet i\u00e7in ayr\u0131 bir <code>-L<\/code> arg\u00fcman\u0131 gerektirir. \u00c7ok say\u0131da hizmete eri\u015fmek gerekti\u011finde karma\u015f\u0131kla\u015fabilir.<br \/>\n*   <strong>Manuel Y\u00f6netim:<\/strong> T\u00fcnelin manuel olarak ba\u015flat\u0131lmas\u0131 ve kapat\u0131lmas\u0131 gerekir (otomatikle\u015ftirilmedi\u011fi s\u00fcrece).<br \/>\n*   <strong>Sadece Belirli Portlar:<\/strong> Dinamik port y\u00f6nlendirmeye g\u00f6re daha az esnektir; sadece \u00f6nceden tan\u0131mlanm\u0131\u015f portlar\u0131 y\u00f6nlendirebilir.<\/p>\n<h3>Uzak Port Y\u00f6nlendirme (Remote Port Forwarding) Detayl\u0131 \u0130nceleme<\/h3>\n<p>Uzak port y\u00f6nlendirme, yerel port y\u00f6nlendirmenin \u00e7al\u0131\u015fma prensibinin tam tersidir. Bu y\u00f6ntemde, SSH sunucusundaki bir porttan gelen trafik, SSH istemcisi \u00fczerinden istemcinin yerel a\u011f\u0131ndaki bir hedefe y\u00f6nlendirilir. Yani, SSH sunucusunu bir &#8220;ge\u00e7it&#8221; olarak kullanarak, istemcinin arkas\u0131ndaki bir hizmeti d\u0131\u015f d\u00fcnyaya a\u00e7may\u0131 sa\u011flar.<\/p>\n<h4>\u00c7al\u0131\u015fma Prensibi<\/h4>\n<p>Uzak port y\u00f6nlendirme \u015fu ad\u0131mlarla \u00e7al\u0131\u015f\u0131r:<\/p>\n<p>1.  SSH istemcisi (yerel makine), SSH sunucusuna ba\u011flan\u0131r ve SSH sunucusunda belirli bir portu (\u00f6rne\u011fin, <code>remoteserver:8080<\/code>) dinlemesini ister.<br \/>\n2.  SSH sunucusundaki bu porta gelen herhangi bir ba\u011flant\u0131, SSH t\u00fcneli \u00fczerinden \u015fifrelenerek SSH istemcisine (yerel makineye) g\u00f6nderilir.<br \/>\n3.  SSH istemcisi, \u015fifreli trafi\u011fi al\u0131r, \u015fifresini \u00e7\u00f6zer ve belirlenen yerel hedef sunucu ve portuna (\u00f6rne\u011fin, <code>localhost:yerel_hedef_port<\/code>) iletir.<br \/>\n4.  Yerel hedeften gelen yan\u0131tlar da ayn\u0131 t\u00fcnel \u00fczerinden \u015fifrelenerek SSH istemcisine, oradan da SSH sunucusuna ve son olarak uzaktaki uygulamaya iletilir.<\/p>\n<p>Bu y\u00f6ntem, \u00f6zellikle NAT (Network Address Translation) arkas\u0131ndaki veya g\u00fcvenlik duvar\u0131 ile korunan bir yerel hizmeti, uzaktaki bir SSH sunucusu \u00fczerinden eri\u015filebilir k\u0131lmak i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre>\nYerel Makine (\u0130stemci)         SSH Sunucusu          Uzak Uygulama\n[YerelHedefHost:YerelHedefPort] <-----> [SSH \u0130stemcisi] <---SSH T\u00fcneli---> [SSH Sunucusu:UzakPort] <-----> [Uzak Uygulama]\n<\/pre>\n<h4>Kullan\u0131m Senaryolar\u0131<\/h4>\n<p>*   <strong>NAT Arkas\u0131ndaki Hizmetlere D\u0131\u015far\u0131dan Eri\u015fim:<\/strong> Ev a\u011f\u0131n\u0131zdaki bir Raspberry Pi, web sunucusu veya IP kameraya d\u0131\u015far\u0131dan eri\u015fmek istedi\u011finizde, ancak do\u011frudan port y\u00f6nlendirme yapam\u0131yorsan\u0131z (\u00f6rne\u011fin, ISS k\u0131s\u0131tlamalar\u0131 nedeniyle), uzak port y\u00f6nlendirme ile bu hizmetleri bir bulut sunucusu (SSH sunucusu) \u00fczerinden eri\u015filebilir k\u0131labilirsiniz.<br \/>\n*   <strong>Demo Ortamlar\u0131 Sunma:<\/strong> Geli\u015ftirdi\u011finiz bir uygulamay\u0131 veya bir demoyu, d\u0131\u015f d\u00fcnyadan eri\u015filebilir k\u0131lmak i\u00e7in h\u0131zl\u0131 ve ge\u00e7ici bir \u00e7\u00f6z\u00fcm olarak kullan\u0131labilir.<br \/>\n*   <strong>Destek ve Uzaktan Y\u00f6netim:<\/strong> Bir m\u00fc\u015fterinin veya uzaktaki bir ofisin i\u00e7 a\u011f\u0131ndaki bir cihaza (\u00f6rn. bir sunucu veya a\u011f cihaz\u0131) SSH sunucusu \u00fczerinden eri\u015fim sa\u011flamak.<\/p>\n<h4>S\u00f6z Dizimi ve \u00d6rnekler<\/h4>\n<p>Uzak port y\u00f6nlendirmenin temel s\u00f6z dizimi \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-bash\">ssh -R [uzak_dinleme_portu]:[hedef_host]:[hedef_port] [ssh_kullanici]@[ssh_sunucu]<\/code><\/pre>\n<p>*   <code>-R<\/code>: Uzak port y\u00f6nlendirme yap\u0131laca\u011f\u0131n\u0131 belirtir.<br \/>\n*   <code>[uzak_dinleme_portu]<\/code>: SSH sunucusunda dinlenecek port numaras\u0131.<br \/>\n*   <code>[hedef_host]<\/code>: SSH istemcisinden (yerel makine) eri\u015filecek olan as\u0131l hedef sunucunun IP adresi veya hostname&#8217;i. Bu genellikle <code>localhost<\/code> veya <code>127.0.0.1<\/code> (yerel makinenin kendisi) olur.<br \/>\n*   <code>[hedef_port]<\/code>: Hedef sunucudaki hizmetin dinledi\u011fi port numaras\u0131.<br \/>\n*   <code>[ssh_kullanici]@[ssh_sunucu]<\/code>: SSH ba\u011flant\u0131s\u0131n\u0131n kurulaca\u011f\u0131 uzak SSH sunucusunun kullan\u0131c\u0131 ad\u0131 ve IP adresi\/hostname&#8217;i.<\/p>\n<p><strong>\u00d6rnek 1: Yerel web sunucusunu uzak sunucu \u00fczerinden eri\u015filebilir k\u0131lma<\/strong><\/p>\n<p>Yerel makinenizde <code>localhost:80<\/code> \u00fczerinde \u00e7al\u0131\u015fan bir web sunucusu oldu\u011funu ve bu sunucuya <code>remoteserver.com<\/code> \u00fczerinden <code>remoteserver.com:8080<\/code> adresinden eri\u015filmesini istedi\u011finizi varsayal\u0131m:<\/p>\n<pre><code class=\"language-bash\">ssh -R 8080:localhost:80 user@remoteserver.com<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, <code>remoteserver.com<\/code> sunucusuna SSH ile ba\u011flanan herkes veya <code>remoteserver.com<\/code> sunucusunun kendisi, <code>http:\/\/localhost:8080<\/code> (remoteserver.com \u00fczerinde) adresine eri\u015fti\u011finde asl\u0131nda sizin yerel makinenizdeki web sunucusuna ba\u011flanm\u0131\u015f olur.<\/p>\n<p><strong><code>GatewayPorts<\/code> Ayar\u0131 ve D\u0131\u015far\u0131dan Eri\u015fim<\/strong><\/p>\n<p>Varsay\u0131lan olarak, SSH sunucusunda <code>-R<\/code> ile a\u00e7\u0131lan portlar sadece SSH sunucusunun kendisi (<code>localhost<\/code>) taraf\u0131ndan eri\u015filebilir. Yani, <code>remoteserver.com<\/code> \u00fczerindeki 8080 portuna sadece <code>remoteserver.com<\/code>&#8216;un kendisi eri\u015febilir, d\u0131\u015far\u0131dan ba\u015fka bir makine eri\u015femez. E\u011fer bu portun d\u0131\u015f d\u00fcnyadan da eri\u015filebilir olmas\u0131n\u0131 istiyorsan\u0131z, SSH sunucusunun <code>sshd_config<\/code> dosyas\u0131nda <code>GatewayPorts<\/code> ayar\u0131n\u0131 <code>yes<\/code> olarak de\u011fi\u015ftirmeniz ve SSH hizmetini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-\"># \/etc\/ssh\/sshd_config\nGatewayPorts yes<\/code><\/pre>\n<p>Bu ayar\u0131 yapt\u0131ktan sonra, yukar\u0131daki <code>-R<\/code> komutuyla a\u00e7\u0131lan port, <code>remoteserver.com<\/code>&#8216;un d\u0131\u015f IP adresi \u00fczerinden de eri\u015filebilir olacakt\u0131r. Bu, \u00f6nemli bir g\u00fcvenlik riski ta\u015f\u0131d\u0131\u011f\u0131 i\u00e7in dikkatli kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p><strong>T\u00fcneli Arka Planda \u00c7al\u0131\u015ft\u0131rma (<code>-fN<\/code>)<\/strong><\/p>\n<p>Yerel port y\u00f6nlendirmede oldu\u011fu gibi, uzak port y\u00f6nlendirme t\u00fcnelini de arka planda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>-fN<\/code> arg\u00fcmanlar\u0131 kullan\u0131labilir:<\/p>\n<pre><code class=\"language-bash\">ssh -fN -R 8080:localhost:80 user@remoteserver.com<\/code><\/pre>\n<h4>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h4>\n<p><strong>Avantajlar\u0131:<\/strong><\/p>\n<p>*   <strong>NAT\/G\u00fcvenlik Duvar\u0131 A\u015fma:<\/strong> Yerel a\u011fdaki hizmetleri, d\u0131\u015far\u0131dan do\u011frudan eri\u015filemeyen durumlarda eri\u015filebilir k\u0131lar.<br \/>\n*   <strong>Ters T\u00fcnelleme:<\/strong> D\u0131\u015far\u0131dan i\u00e7eriye do\u011fru bir ba\u011flant\u0131 kurman\u0131n en g\u00fcvenli yollar\u0131ndan biridir.<br \/>\n*   <strong>Esneklik:<\/strong> Uzaktaki bir sunucuyu, yerel a\u011f\u0131n\u0131zdaki bir hizmet i\u00e7in bir proxy gibi kullanman\u0131z\u0131 sa\u011flar.<\/p>\n<p><strong>Dezavantajlar\u0131:<\/strong><\/p>\n<p>*   <strong>SSH Sunucusu Yap\u0131land\u0131rmas\u0131:<\/strong> <code>GatewayPorts<\/code> ayar\u0131, d\u0131\u015far\u0131dan eri\u015fim i\u00e7in SSH sunucusunda ek yap\u0131land\u0131rma gerektirebilir.<br \/>\n*   <strong>G\u00fcvenlik Riskleri:<\/strong> Uzak portu d\u0131\u015f d\u00fcnyaya a\u00e7mak, SSH sunucusu \u00fczerinde potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131 yaratabilir. Dikkatli kullan\u0131lmal\u0131 ve sadece g\u00fcvenilir SSH sunucular\u0131 ile yap\u0131lmal\u0131d\u0131r.<br \/>\n*   <strong>Ba\u011flant\u0131 Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131:<\/strong> SSH istemcisi ile SSH sunucusu aras\u0131ndaki ba\u011flant\u0131 kesildi\u011finde t\u00fcnel de kapan\u0131r.<\/p>\n<h3>Dinamik Port Y\u00f6nlendirme (Dynamic Port Forwarding) Detayl\u0131 \u0130nceleme<\/h3>\n<p>Dinamik port y\u00f6nlendirme, di\u011fer iki t\u00fcrden farkl\u0131 olarak, belirli bir hedef port veya host belirtmek yerine, yerel makinenizde bir SOCKS proxy sunucusu olu\u015fturur. Bu SOCKS proxy \u00fczerinden ge\u00e7en t\u00fcm a\u011f trafi\u011fi, SSH t\u00fcneli arac\u0131l\u0131\u011f\u0131yla SSH sunucusuna y\u00f6nlendirilir ve oradan da istenen herhangi bir hedefe iletilir. Bu, tek bir SSH ba\u011flant\u0131s\u0131 \u00fczerinden birden fazla hizmete veya kayna\u011fa esnek bir \u015fekilde eri\u015fim imkan\u0131 sunar.<\/p>\n<h4>\u00c7al\u0131\u015fma Prensibi (SOCKS Proxy)<\/h4>\n<p>Dinamik port y\u00f6nlendirme \u015fu ad\u0131mlarla \u00e7al\u0131\u015f\u0131r:<\/p>\n<p>1.  Kullan\u0131c\u0131, SSH istemcisi arac\u0131l\u0131\u011f\u0131yla yerel makinesinde belirli bir portta (\u00f6rne\u011fin, <code>localhost:1080<\/code>) bir SOCKS proxy sunucusu ba\u015flat\u0131r.<br \/>\n2.  Kullan\u0131c\u0131n\u0131n uygulamalar\u0131 (taray\u0131c\u0131lar, e-posta istemcileri vb.), a\u011f ayarlar\u0131n\u0131 bu SOCKS proxy&#8217;sini kullanacak \u015fekilde yap\u0131land\u0131r\u0131r.<br \/>\n3.  Uygulamadan gelen herhangi bir a\u011f iste\u011fi (\u00f6rne\u011fin, bir web sitesine gitme), SOCKS proxy&#8217;sine g\u00f6nderilir.<br \/>\n4.  SOCKS proxy&#8217;si bu iste\u011fi \u015fifreler ve SSH t\u00fcneli \u00fczerinden SSH sunucusuna iletir.<br \/>\n5.  SSH sunucusu, \u015fifreli iste\u011fi al\u0131r, \u015fifresini \u00e7\u00f6zer ve iste\u011fi SSH sunucusunun bulundu\u011fu a\u011fdan as\u0131l hedefe (\u00f6rne\u011fin, internetteki bir web sitesine) y\u00f6nlendirir.<br \/>\n6.  Hedeften gelen yan\u0131tlar da ayn\u0131 t\u00fcnel \u00fczerinden \u015fifrelenerek SSH sunucusuna, oradan SSH istemcisine ve son olarak yerel uygulamaya iletilir.<\/p>\n<p>Bu sayede, yerel makinedeki uygulamalar, sanki SSH sunucusunun a\u011f\u0131ndan internete \u00e7\u0131k\u0131yormu\u015f gibi davran\u0131r.<\/p>\n<pre>\nYerel Makine (\u0130stemci)         SSH Sunucusu          Uzak Hedefler (\u0130nternet)\n[Uygulama] <-----> [localhost:SOCKS_Port] <---SSH T\u00fcneli---> [SSH Sunucusu] <-----> [Herhangi_Host:Herhangi_Port]\n<\/pre>\n<h4>Kullan\u0131m Senaryolar\u0131<\/h4>\n<p>*   <strong>Sans\u00fcrl\u00fc veya K\u0131s\u0131tl\u0131 A\u011flar\u0131 A\u015fma:<\/strong> \u0130nternet eri\u015fiminin k\u0131s\u0131tland\u0131\u011f\u0131 veya belirli sitelere eri\u015fimin engellendi\u011fi b\u00f6lgelerde, dinamik port y\u00f6nlendirme ile bu k\u0131s\u0131tlamalar a\u015f\u0131labilir. Trafik, sans\u00fcrs\u00fcz bir b\u00f6lgedeki SSH sunucusu \u00fczerinden y\u00f6nlendirilir.<br \/>\n*   <strong>Anonimlik ve Gizlilik:<\/strong> \u0130nternet trafi\u011fini uzaktaki bir sunucu \u00fczerinden y\u00f6nlendirerek, kullan\u0131c\u0131n\u0131n ger\u00e7ek IP adresini gizlemeye yard\u0131mc\u0131 olur. Bu, bir miktar anonimlik sa\u011flar (tam anonimlik i\u00e7in Tor gibi \u00e7\u00f6z\u00fcmler daha etkilidir).<br \/>\n*   <strong>G\u00fcvenli \u0130nternet Eri\u015fimi:<\/strong> Halka a\u00e7\u0131k Wi-Fi a\u011flar\u0131 gibi g\u00fcvensiz ortamlarda, t\u00fcm internet trafi\u011fini \u015fifreli bir SSH t\u00fcneli \u00fczerinden ge\u00e7irerek g\u00fcvenli\u011fi art\u0131r\u0131r.<br \/>\n*   <strong>Birden Fazla Hizmete Eri\u015fim:<\/strong> Tek bir SSH t\u00fcneli \u00fczerinden hem uzaktaki bir veritaban\u0131na, hem bir web aray\u00fcz\u00fcne, hem de genel internete eri\u015fim sa\u011flayabilir.<\/p>\n<h4>S\u00f6z Dizimi ve \u00d6rnekler<\/h4>\n<p>Dinamik port y\u00f6nlendirmenin temel s\u00f6z dizimi \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-bash\">ssh -D [yerel_socks_port] [ssh_kullanici]@[ssh_sunucu]<\/code><\/pre>\n<p>*   <code>-D<\/code>: Dinamik port y\u00f6nlendirme yap\u0131laca\u011f\u0131n\u0131 belirtir.<br \/>\n*   <code>[yerel_socks_port]<\/code>: Yerel makinenizde SOCKS proxy&#8217;sinin dinleyece\u011fi port numaras\u0131. Genellikle 1080 veya 8080 gibi portlar kullan\u0131l\u0131r.<br \/>\n*   <code>[ssh_kullanici]@[ssh_sunucu]<\/code>: SSH ba\u011flant\u0131s\u0131n\u0131n kurulaca\u011f\u0131 uzak SSH sunucusunun kullan\u0131c\u0131 ad\u0131 ve IP adresi\/hostname&#8217;i.<\/p>\n<p><strong>\u00d6rnek 1: Temel SOCKS proxy olu\u015fturma<\/strong><\/p>\n<pre><code class=\"language-bash\">ssh -D 1080 user@remoteserver.com<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, yerel makinenizde <code>localhost:1080<\/code> adresinde bir SOCKS5 proxy sunucusu \u00e7al\u0131\u015fmaya ba\u015flar.<\/p>\n<p><strong>T\u00fcneli Arka Planda \u00c7al\u0131\u015ft\u0131rma (<code>-fN<\/code>)<\/strong><\/p>\n<p>Yine, t\u00fcneli arka planda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>-fN<\/code> arg\u00fcmanlar\u0131 kullan\u0131l\u0131r:<\/p>\n<pre><code class=\"language-bash\">ssh -fN -D 1080 user@remoteserver.com<\/code><\/pre>\n<p><strong>Taray\u0131c\u0131 veya Uygulama Yap\u0131land\u0131rmas\u0131<\/strong><\/p>\n<p>SOCKS proxy&#8217;sini olu\u015fturduktan sonra, uygulamalar\u0131n\u0131z\u0131 bu proxy&#8217;yi kullanacak \u015fekilde yap\u0131land\u0131rman\u0131z gerekir.<\/p>\n<p><strong>Firefox \u00d6rne\u011fi:<\/strong><\/p>\n<p>1.  Firefox&#8217;u a\u00e7\u0131n.<br \/>\n2.  Ayarlar&#8217;a gidin.<br \/>\n3.  &#8220;A\u011f Ayarlar\u0131&#8221; veya &#8220;Proxy Ayarlar\u0131&#8221; b\u00f6l\u00fcm\u00fcn\u00fc aray\u0131n.<br \/>\n4.  &#8220;Manuel Proxy Ayar\u0131&#8221; veya &#8220;Proxy Sunucular\u0131n\u0131 Yap\u0131land\u0131r&#8221; se\u00e7ene\u011fini se\u00e7in.<br \/>\n5.  &#8220;SOCKS Host&#8221; veya &#8220;SOCKS Sunucusu&#8221; alan\u0131na <code>localhost<\/code> yaz\u0131n.<br \/>\n6.  &#8220;Port&#8221; alan\u0131na <code>1080<\/code> yaz\u0131n (SSH komutunda belirtti\u011finiz port).<br \/>\n7.  &#8220;SOCKS v5&#8221; se\u00e7ene\u011fini i\u015faretleyin.<br \/>\n8.  Ayarlar\u0131 kaydedin.<\/p>\n<p>Art\u0131k Firefox \u00fczerinden yapt\u0131\u011f\u0131n\u0131z t\u00fcm internet trafi\u011fi, SSH t\u00fcneli \u00fczerinden <code>remoteserver.com<\/code> sunucusuna, oradan da internete y\u00f6nlendirilecektir. IP adresinizi kontrol etti\u011finizde, <code>remoteserver.com<\/code>&#8216;un IP adresini g\u00f6receksiniz.<\/p>\n<p><strong>Chrome\/Di\u011fer Uygulamalar:<\/strong><\/p>\n<p>Chrome&#8217;un do\u011frudan SOCKS proxy ayar\u0131 yoktur, ancak eklentiler (\u00f6rne\u011fin, SwitchyOmega) veya sistem genelindeki proxy ayarlar\u0131 (i\u015fletim sisteminin a\u011f ayarlar\u0131) arac\u0131l\u0131\u011f\u0131yla yap\u0131land\u0131r\u0131labilir. Baz\u0131 uygulamalar kendi proxy ayarlar\u0131n\u0131 sunar.<\/p>\n<p><strong>Komut Sat\u0131r\u0131 Ara\u00e7lar\u0131 ile Kullan\u0131m:<\/strong><\/p>\n<p><code>curl<\/code> gibi ara\u00e7lar\u0131 SOCKS proxy ile kullanmak i\u00e7in <code>--socks5-hostname<\/code> arg\u00fcman\u0131 kullan\u0131labilir:<\/p>\n<pre><code class=\"language-bash\">curl --socks5-hostname localhost:1080 http:\/\/ipinfo.io\/ip<\/code><\/pre>\n<p>Bu komut, <code>ipinfo.io\/ip<\/code> adresine SOCKS proxy \u00fczerinden istek g\u00f6nderir ve SSH sunucusunun IP adresini d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h4>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h4>\n<p><strong>Avantajlar\u0131:<\/strong><\/p>\n<p>*   <strong>Esneklik:<\/strong> Tek bir t\u00fcnel \u00fczerinden birden fazla hizmete ve genel internete eri\u015fim sa\u011flar.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 A\u015fma:<\/strong> K\u0131s\u0131tl\u0131 a\u011flardaki t\u00fcm trafi\u011fi g\u00fcvenli bir \u015fekilde y\u00f6nlendirme imkan\u0131 sunar.<br \/>\n*   <strong>Anonimlik ve Sans\u00fcr A\u015fma:<\/strong> IP adresini gizleyerek ve b\u00f6lgesel k\u0131s\u0131tlamalar\u0131 a\u015farak daha \u00f6zg\u00fcr bir internet deneyimi sunar.<br \/>\n*   <strong>Kolay Yap\u0131land\u0131rma:<\/strong> Uygulamalar proxy kullanacak \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda, SSH t\u00fcneli s\u00fcrekli a\u00e7\u0131k kalabilir.<\/p>\n<p><strong>Dezavantajlar\u0131:<\/strong><\/p>\n<p>*   <strong>Performans Kayb\u0131:<\/strong> SOCKS proxy katman\u0131 ve \u015fifreleme\/\u015fifre \u00e7\u00f6zme i\u015flemleri nedeniyle performansta bir miktar d\u00fc\u015f\u00fc\u015f ya\u015fanabilir.<br \/>\n*   <strong>Uygulama Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131:<\/strong> Her uygulaman\u0131n SOCKS proxy&#8217;sini kullanacak \u015fekilde manuel olarak yap\u0131land\u0131r\u0131lmas\u0131 gerekir (veya sistem genelinde proxy ayarlar\u0131 kullan\u0131lmal\u0131d\u0131r).<br \/>\n*   <strong>G\u00fcvenlik Riskleri:<\/strong> G\u00fcvenilmeyen bir SSH sunucusu \u00fczerinden trafik y\u00f6nlendirmek, verilerinizin ele ge\u00e7irilmesi riskini ta\u015f\u0131r. SSH sunucusunun g\u00fcvenli\u011fi kritik \u00f6neme sahiptir.<br \/>\n*   <strong>SSH Sunucusunun Y\u00fck\u00fc:<\/strong> T\u00fcm trafik SSH sunucusu \u00fczerinden ge\u00e7ti\u011fi i\u00e7in, sunucu \u00fczerinde ek bir y\u00fck olu\u015fturur.<\/p>\n<h3>SSH Port Y\u00f6nlendirme \u0130\u00e7in Ek \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>SSH port y\u00f6nlendirme \u00f6zelliklerini daha verimli ve g\u00fcvenli kullanmak i\u00e7in baz\u0131 ek ipu\u00e7lar\u0131 ve en iyi uygulamalar mevcuttur:<\/p>\n<h4><code>~\/.ssh\/config<\/code> Dosyas\u0131 Kullan\u0131m\u0131<\/h4>\n<p>Tekrarlayan SSH komutlar\u0131n\u0131 kolayla\u015ft\u0131rmak ve yap\u0131land\u0131rmay\u0131 merkezi hale getirmek i\u00e7in <code>~\/.ssh\/config<\/code> dosyas\u0131n\u0131 kullanmak olduk\u00e7a faydal\u0131d\u0131r. Bu dosya, her bir SSH ba\u011flant\u0131s\u0131 i\u00e7in \u00f6zel ayarlar\u0131 tan\u0131mlaman\u0131za olanak tan\u0131r.<\/p>\n<p><strong>\u00d6rnek <code>~\/.ssh\/config<\/code> Yap\u0131land\u0131rmas\u0131:<\/strong><\/p>\n<pre><code class=\"language-\">Host web_tunnel\n    HostName example.com\n    User user\n    LocalForward 8080 localhost:80\n    ExitOnForwardFailure yes\n    RequestTTY no\n    ServerAliveInterval 60\n    ServerAliveCountMax 3\n\nHost db_tunnel\n    HostName dev.example.com\n    User user\n    LocalForward 3307 192.168.1.10:3306\n    ExitOnForwardFailure yes\n    RequestTTY no\n    ServerAliveInterval 60\n    ServerAliveCountMax 3\n\nHost socks_proxy\n    HostName remoteserver.com\n    User user\n    DynamicForward 1080\n    ExitOnForwardFailure yes\n    RequestTTY no\n    ServerAliveInterval 60\n    ServerAliveCountMax 3<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmalar\u0131 yapt\u0131ktan sonra, t\u00fcnelleri ba\u015flatmak i\u00e7in \u00e7ok daha k\u0131sa komutlar kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ssh -fN web_tunnel\nssh -fN db_tunnel\nssh -fN socks_proxy<\/code><\/pre>\n<h4>G\u00fcvenlik Konular\u0131<\/h4>\n<p>SSH port y\u00f6nlendirme g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r, ancak yanl\u0131\u015f kullan\u0131ld\u0131\u011f\u0131nda g\u00fcvenlik riskleri de ta\u015f\u0131yabilir:<\/p>\n<p>*   <strong>G\u00fc\u00e7l\u00fc Kimlik Do\u011frulama:<\/strong> Her zaman g\u00fc\u00e7l\u00fc parolalar veya tercihen SSH anahtar \u00e7iftleri kullan\u0131n. Anahtarlar\u0131n\u0131z\u0131 bir parola (passphrase) ile koruyun.<br \/>\n*   <strong>Minimum Yetki Prensibi:<\/strong> SSH sunucusundaki kullan\u0131c\u0131 hesaplar\u0131na sadece gerekli izinleri verin. Port y\u00f6nlendirme yapmak i\u00e7in root yetkisine gerek yoktur.<br \/>\n*   <strong><code>AllowTcpForwarding<\/code> ve <code>GatewayPorts<\/code>:<\/strong> SSH sunucusunda <code>sshd_config<\/code> dosyas\u0131ndaki bu ayarlar\u0131 dikkatlice y\u00f6netin.<br \/>\n    *   <code>AllowTcpForwarding no<\/code>: Sunucunun t\u00fcm port y\u00f6nlendirme yetene\u011fini devre d\u0131\u015f\u0131 b\u0131rak\u0131r.<br \/>\n    *   <code>GatewayPorts no<\/code>: Uzak port y\u00f6nlendirme ile a\u00e7\u0131lan portlar\u0131n sadece <code>localhost<\/code> \u00fczerinden eri\u015filebilir olmas\u0131n\u0131 sa\u011flar (varsay\u0131lan). G\u00fcvenlik i\u00e7in genellikle <code>no<\/code> olarak b\u0131rak\u0131lmas\u0131 \u00f6nerilir.<br \/>\n*   <strong>Anahtar Baz\u0131nda K\u0131s\u0131tlama:<\/strong> SSH anahtarlar\u0131n\u0131 kullan\u0131rken, <code>authorized_keys<\/code> dosyas\u0131nda belirli anahtarlar i\u00e7in <code>no-port-forwarding<\/code>, <code>no-agent-forwarding<\/code>, <code>no-pty<\/code> gibi se\u00e7eneklerle yetkileri k\u0131s\u0131tlayabilirsiniz. Bu, \u00f6zellikle otomasyon veya k\u0131s\u0131tl\u0131 eri\u015fim gerektiren senaryolarda faydal\u0131d\u0131r.<br \/>\n*   <strong>G\u00fcvenilir SSH Sunucular\u0131:<\/strong> Trafi\u011finizi y\u00f6nlendirdi\u011finiz SSH sunucusunun g\u00fcvenilir oldu\u011fundan emin olun. G\u00fcvenilmeyen bir sunucu, verilerinizi ele ge\u00e7irebilir veya k\u00f6t\u00fcye kullanabilir.<\/p>\n<h4><code>screen<\/code> veya <code>tmux<\/code> Kullan\u0131m\u0131<\/h4>\n<p>SSH t\u00fcnellerini arka planda kal\u0131c\u0131 olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>-fN<\/code> arg\u00fcmanlar\u0131 kullan\u0131labilse de, t\u00fcnelin durumunu izlemek veya manuel olarak kapatmak zor olabilir. <code>screen<\/code> veya <code>tmux<\/code> gibi terminal multiplexer&#8217;lar\u0131, SSH oturumunu sanal bir terminalde \u00e7al\u0131\u015ft\u0131rarak, ana SSH ba\u011flant\u0131n\u0131z kopsa bile t\u00fcnelin \u00e7al\u0131\u015fmaya devam etmesini sa\u011flar. Bu, t\u00fcneli kolayca y\u00f6netmenize ve yeniden ba\u011flanman\u0131za olanak tan\u0131r.<\/p>\n<pre><code class=\"language-bash\"># Bir screen oturumu ba\u015flat\u0131n\nscreen\n\n<h2>T\u00fcnel komutunuzu \u00e7al\u0131\u015ft\u0131r\u0131n (\u00f6rne\u011fin, dinamik y\u00f6nlendirme)<\/h2>\nssh -D 1080 user@remoteserver.com\n\n<h2>Ctrl+A D tu\u015flar\u0131na basarak screen oturumundan ayr\u0131l\u0131n. T\u00fcnel arka planda \u00e7al\u0131\u015fmaya devam eder.<\/h2>\n\n<h2>Daha sonra tekrar ba\u011flanmak i\u00e7in<\/h2>\nscreen -r<\/code><\/pre>\n<h4>Kalp At\u0131\u015f\u0131 (Keep-Alive) Ayarlar\u0131<\/h4>\n<p>Uzun s\u00fcre aktif olmayan SSH t\u00fcnelleri, a\u011f donan\u0131mlar\u0131 veya g\u00fcvenlik duvarlar\u0131 taraf\u0131ndan zaman a\u015f\u0131m\u0131na u\u011frat\u0131larak kapat\u0131labilir. Bu durumun \u00f6n\u00fcne ge\u00e7mek i\u00e7in SSH ba\u011flant\u0131s\u0131n\u0131n &#8220;kalp at\u0131\u015f\u0131&#8221; (keep-alive) g\u00f6ndermesini sa\u011flayabilirsiniz:<\/p>\n<p>*   <strong><code>ServerAliveInterval<\/code>:<\/strong> \u0130stemcinin sunucuya bo\u015f bir paket g\u00f6nderme aral\u0131\u011f\u0131n\u0131 saniye cinsinden belirtir.<br \/>\n*   <strong><code>ServerAliveCountMax<\/code>:<\/strong> Sunucudan yan\u0131t al\u0131namadan ka\u00e7 tane bo\u015f paket g\u00f6nderilece\u011fini belirtir. Bu say\u0131ya ula\u015f\u0131ld\u0131\u011f\u0131nda ba\u011flant\u0131 kesilir.<\/p>\n<p>Bu ayarlar\u0131 <code>~\/.ssh\/config<\/code> dosyan\u0131za veya do\u011frudan <code>ssh<\/code> komutuna ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -L 8080:localhost:80 user@example.com<\/code><\/pre>\n<h4>Hata Ay\u0131klama<\/h4>\n<p>SSH t\u00fcnelleri beklendi\u011fi gibi \u00e7al\u0131\u015fmad\u0131\u011f\u0131nda, hata ay\u0131klama i\u00e7in <code>-v<\/code>, <code>-vv<\/code>, <code>-vvv<\/code> arg\u00fcmanlar\u0131 ile verbose (ayr\u0131nt\u0131l\u0131) \u00e7\u0131kt\u0131 alabilirsiniz. Bu, ba\u011flant\u0131 s\u00fcrecinde veya y\u00f6nlendirme s\u0131ras\u0131nda olu\u015fan sorunlar\u0131 tespit etmenize yard\u0131mc\u0131 olur.<\/p>\n<pre><code class=\"language-bash\">ssh -vvv -L 8080:localhost:80 user@example.com<\/code><\/pre>\n<h3>Sonu\u00e7<\/h3>\n<p>SSH port y\u00f6nlendirme, modern a\u011f y\u00f6netiminde ve g\u00fcvenli ileti\u015fimde vazge\u00e7ilmez bir ara\u00e7t\u0131r. Yerel, uzak ve dinamik port y\u00f6nlendirme t\u00fcrleri, farkl\u0131 senaryolara y\u00f6nelik g\u00fc\u00e7l\u00fc ve esnek \u00e7\u00f6z\u00fcmler sunar. Yerel port y\u00f6nlendirme ile uzaktaki hizmetlere g\u00fcvenli bir \u015fekilde eri\u015febilir, uzak port y\u00f6nlendirme ile NAT veya g\u00fcvenlik duvar\u0131 arkas\u0131ndaki yerel hizmetleri d\u0131\u015f d\u00fcnyaya a\u00e7abilir ve dinamik port y\u00f6nlendirme ile esnek bir SOCKS proxy olu\u015fturarak sans\u00fcr\u00fc a\u015fabilir veya internet trafi\u011finizi g\u00fcvenli bir t\u00fcnel \u00fczerinden y\u00f6nlendirebilirsiniz.<\/p>\n<p>Bu \u00f6zelliklerin do\u011fru anla\u015f\u0131lmas\u0131 ve uygulanmas\u0131, hem geli\u015ftiricilerin hem de sistem y\u00f6neticilerinin g\u00fcnl\u00fck i\u015f ak\u0131\u015flar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131rken, ayn\u0131 zamanda a\u011f g\u00fcvenli\u011fini art\u0131r\u0131r. Ancak, bu g\u00fcc\u00fcn beraberinde getirdi\u011fi sorumlulu\u011fun fark\u0131nda olmak ve g\u00fcvenlik en iyi uygulamalar\u0131n\u0131 takip etmek kritik \u00f6neme sahiptir. G\u00fc\u00e7l\u00fc kimlik do\u011frulama y\u00f6ntemleri kullanmak, yetkileri s\u0131n\u0131rlamak ve g\u00fcvenilir SSH sunucular\u0131yla \u00e7al\u0131\u015fmak, SSH t\u00fcnellemenin faydalar\u0131ndan maksimum d\u00fczeyde yararlan\u0131rken potansiyel riskleri minimize etmenin anahtar\u0131d\u0131r.<\/p>\n<p>SSH port y\u00f6nlendirme, a\u011f ileti\u015fiminin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 basitle\u015ftiren, g\u00fcvenlik katmanlar\u0131 ekleyen ve eri\u015filebilirlik sa\u011flayan \u00e7ok y\u00f6nl\u00fc bir teknolojidir. Bu makalede ele al\u0131nan detayl\u0131 bilgiler ve pratik \u00f6rnekler sayesinde, okuyucular\u0131n bu g\u00fc\u00e7l\u00fc arac\u0131 kendi ihtiya\u00e7lar\u0131 do\u011frultusunda etkin bir \u015fekilde kullanabilece\u011fine inan\u0131yoruz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m\nGiri\u015f: SSH Port Y\u00f6nlendirmenin Temelleri\nG\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k a\u011f o","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-35791","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m\" \/>\n<meta property=\"og:description\" content=\"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m Giri\u015f: SSH Port Y\u00f6nlendirmenin Temelleri G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k a\u011f o\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-03T19:40:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m\",\"datePublished\":\"2025-12-03T19:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/\"},\"wordCount\":3982,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/\",\"name\":\"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-03T19:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/","og_locale":"tr_TR","og_type":"article","og_title":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m","og_description":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m Giri\u015f: SSH Port Y\u00f6nlendirmenin Temelleri G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k a\u011f o","og_url":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-03T19:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m","datePublished":"2025-12-03T19:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/"},"wordCount":3982,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/","url":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/","name":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-03T19:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ssh-port-yonlendirme-yerel-uzak-ve-dinamik-tunelleme-detayli-anlatim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SSH Port Y\u00f6nlendirme: Yerel, Uzak ve Dinamik T\u00fcnelleme Detayl\u0131 Anlat\u0131m"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35791"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35791\/revisions"}],"predecessor-version":[{"id":35792,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35791\/revisions\/35792"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}