pencerelerde port yönlendirme


262

Bilgisayarımda iki ağ kartı var:

Ana yerel ip var -> 192.168.1.111 İkincil yerel ip var -> 192.168.0.200

Birincisi internet bağlantısı ve ikincisi IP 192.168.0.33 ile bir cihaza bağlı, 80 numaralı bağlantı noktasında bir http sunucusu var.

Ana bağlantıda (port 4422) bir apache-sunucum var ve her yerden erişebiliyorum, şimdi istediğim 4422'den bir bağlantı algıladığımda bu bağlantıyı 192.168.2.33:80'e yönlendirmek istiyorum

Bunu pencerelerle nasıl yapabilirim?


Yanıtlar:


507

Çözdüm, şu şekilde yapılabilir:

netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33

Yönlendirmeyi kaldırmak için:

netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111

Resmi dokümanlar


21
IPv6'nın kurulu olduğundan emin olun. Bu MS KB makalesine göre , netsh bağlantı noktası proxy özelliğini yapılandırmak için bazı IPv6 kitaplıklarına ihtiyaç duyar.
Renan Mozone

10
Ayrıca, netsh interface portproxy resetveya netsh interface portproxy delete
patrikbeno

7
Bu tekniği kullanmayı denedim ve işe yaradığında son derece yavaştı. Yerine. PassPort ( sourceforge.net/projects/pjs-passport ) adında , belirli bir NIC'ye bağlı aynı bağlantı noktası iletme türünü gerçekleştiren, ancak performans sorunları olmayan bir yardımcı program buldum netsh. Win2008SvrR2'ye iyi kurulur ve çalışır.
James L.10

14
Yukarıdaki komut benim için ne Windows7 ne de Windows Server 2003'te işe yaramadı. Proto = tcp parametresini de belirtmem gerekiyordu . Tam Komut:netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33 protocol=tcp
Alwi

3
Bunun yalnızca TCP'de çalıştığını ve UDP trafiğini iletmek istediğinizde şansın olmadığını unutmayın.
user276648

14

nginx , Windows dahil birçok platformda HTTP iletmek için kullanışlıdır. Daha gelişmiş yapılandırma ile kurulumu ve genişletmesi kolaydır. Temel bir yapılandırma şöyle görünebilir:

events {}

http {
     server {

        listen 192.168.1.111:4422;

        location / {
            proxy_pass http://192.168.2.33:80/;
        }
     }
}

14
Bu, HTTP yönlendirme için iyi bir çözümdür, ancak yalnızca HTTP yönlendirme için (tüm uyarılarıyla, örneğin websockets ek yapılandırmaya ihtiyaç duyar). HTTPS yönlendirme veya diğer keyfi protokoller (örn. RDP) için çoğunlukla işe yaramaz.
Uli Köhler

2
Bununla birlikte, HTTP yönlendirme için inanılmaz derecede iyi bir çözüm, bu yüzden burada olduğuna sevindim.
Casey

Neden? Https
user1156544

@uli hakkında hangi ayarları yapıyorsunuz ... Paylaşmak yararlı olacaktır
user3787216

1
@ UliKöhler Nginx TCP bağlantılarını ayırmak için bir araçtır. HTTP, HTTPS, AMQP, WebSockets için kullanabilirsiniz. Genel TCP bağlantısını yeniden yönlendirmek ve yönetmek için her yerde araçlar tarafından dahili olarak kullanılır. Yani, bu doğru çözüm. Ayrıca bkz netfxharmonics.com/2016/03/nginx
David Betz

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.