Iptables localhost'a yönlendiriliyor mu?


13

Ağın içinden tüm bağlantıları Internet'e yönlendiren bir sunucuya sahip bir ağım olduğunu varsayalım. Nasıl iptables kurmak için Internet'e gelen bağlantıları yönlendirmek yerine, bunun yerine localhost bağlantı noktası 8080 yönlendirir. Tüm yardım takdir edilir.


Sorun, basit yönlendirme (hedef IP adresi NAT) ile orijinal hedef IP adresini kaybetmenizdir. Saydam bir HTTP proxy kurmak istiyor musunuz yoksa HTTP dışındaki protokolleri de işlemeli mi?
pabouk

Onun şeffaf ya da değil önemli değil
DankMemes 18:13

Bir vekil tüm trafiği yönlendiriliyor olan bir :) şeffaf proxy için taban
pabouk

İşte bana gerçekten yardımcı olan başka bir cevap: unix.stackexchange.com/questions/111433/…
Wren T.

Yanıtlar:


6
sysctl net.ipv4.ip_forward=1 
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080

1
cesur kullanmayın ....

Teşekkürler! Henüz denemedim ama eksik olduğum şeyin ip yönlendirme komutu olduğundan şüpheleniyorum. Ve bir dahaki sefere, lütfen kalın değil, kod blokları kullanın.
DankMemes

@AlexAntonov lütfen kod blokları kullanın. Düzenleme modunda metninizi seçin ve köşeli ayraç simgesini tıklayın.
DankMemes

@ZoveGames, üzgünüm, düzeltti.
Alex Antonov

2
Ben bunu denedim. İp_forward sysctl gerekli değildir. Ancak route_localnet seçenek burada olduğunu. Görüyorum ki Juan Cespedes'in cevabı tam da bu .
Matt Joiner

31

Bu iptablessadece çekirdek> = 3.6 ile yapılabilir.

Yapmanız gerekenler:

sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080

ip_forwardgerekli değildir, çünkü paket iletilmez, ancak için sysctl'i eklemezseniz route_localnet(yalnızca çekirdeklerde> = 3.6 çalışır), paket çekirdek tarafından bırakılır, çünkü "martian" olarak kabul edilir, dışarıdan ve hedef adresi 127.0.0.1 olması


Evet, işe yarıyor
Nick De Greek

Route_localnet hakkında bir şey bilmiyordum. Yani eski okul ve ip_forward neden çalışmadığını anlayamadım (gerekmediğinden şüphelenildi ama yine de denedim).
dmourati

1
Kaydettiğinizden emin olun net.ipv4.conf.all.route_localnet=1, /etc/sysctl.confaksi takdirde kalıcı olmayacaktır ve yeniden başlattıktan sonra değişken 0'a geri dönerek paketin düşmesine neden olacaktır. O zaman şimdi neden her şeyin işe yaramadığını anlamak çok zor olurdu ... başıma geldi. ;)
viz

Eski bir soru nekro için özür dilerim ama ile net.ipv4.conf.all.route_localnetkullanım için bir ipv6 karşılığı var ip6tablesmı?
Kebian
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.