Нэг IP болон портоос нөгөө IP болон порт руу урсгалыг дахин чиглүүлэх

Серверүүдийг удирдахад түгээмэл тохиолддог зүйл бол урсгалыг дахин чиглүүлэх явдал юм.

Бидэнд тодорхой үйлчилгээтэй сервер байгаа гэж бодъё, гэхдээ ямар ч шалтгаанаар бид эдгээр үйлчилгээг аль нэгийг нь өөрчилдөг (Би мэдэхгүй байна, жишээ нь pop3 буюу 110 порт) өөр сервер рүү. Ердийн бөгөөд хамгийн их тохиолддог зүйл бол DNS бичлэгийн IP-г зүгээр л өөрчлөх явдал юм, гэхдээ хэн нэгэн дэд домайн оронд IP ашиглаж байсан бол энэ нь нөлөөлөх болно.

Юу хийх вэ? ... энгийн, тухайн серверээр дамжуулан хүлээн авсан урсгалыг ижил порт бүхий өөр сервер рүү чиглүүлээрэй.

server-node-lan-ethernet

Замын хөдөлгөөнийг хэрхэн яаж чиглүүлж эхлэх вэ?

Хамгийн эхний зүйл бол бид үүнийг идэвхжүүлсэн байх ёстой дамжуулж сервер дээр бид дараахь зүйлийг оруулах болно.

echo "1" > /proc/sys/net/ipv4/ip_forward

Энэхүү гарын авлагад үзүүлсэн бүх тушаалуудыг захиргааны давуу эрхээр гүйцэтгэх ёстой бөгөөд тэдгээрийг root хэрэглэгчтэй шууд гүйцэтгэхийг зөвлөж байна.

Өмнөх тушаал нь танд тохирохгүй байгаа тохиолдолд та энэ өөр командыг ашиглаж болно (CentOS дээр надад ийм зүйл тохиолдсон):
sysctl net.ipv4.ip_forward=1
Дараа нь бид сүлжээгээ дахин эхлүүлэх болно:

service networking restart

CentOS болон бусад RPM хуваарилалтад дараахь зүйл орно.

service nertwork restart

Одоо бид чухал зүйл рүү шилжих болно iptables дахин чиглүүлэх:

iptables -t nat -A PREROUTING -p tcp --dport <puerto receptor> -j DNAT --to-destination <ip final>:<puerto de ip final>

Өөрөөр хэлбэл, миний дурдсан жишээг дагаж 110-р портоор дамжуулан манай сервер хүлээн авсан бүх урсгалыг өөр сервер рүү чиглүүлэхийг хүсч байна гэж бодъё (жишээ нь: 10.10.0.2), энэ нь 110-р дамжуулалтыг хүлээн авах боломжтой хэвээр байна.энэ нь ижил үйлчилгээ юм):

iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 10.10.0.2:110

10.10.0.2 сервер нь хүсэлтийг сэлэхийг хүсч байгаа тохиолдолд бүх пакетууд эсвэл хүсэлтүүд үйлчлүүлэгчийн IP-ээс ирдэг, өөрөөр хэлбэл 2-р сервер хүсэлтүүд 1-р серверийн IP-тэй хамт ирдэг болохыг хардаг (мөн бид дахин чиглүүлэлтийг хэрэглэнэ), мөн энэ хоёр дахь мөрийг тавих болно:

iptables -t nat -A POSTROUTING -j MASQUERADE

Зарим асуулт, хариулт

Жишээн дээр би нэг портыг хоёр удаа ашиглаж байсан (110), гэхдээ тэд траффикийг нэг портоос нөгөө порт руу асуудалгүй чиглүүлж чаддаг. Жишээлбэл, би 80-р портоос 443 руу өөр сервер дээрх урсгалыг дахин чиглүүлэхийг хүсч байна гэж бодъё.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.0.2:443

Энэ бол iptables, тэд бидний мэддэг бусад бүх параметрүүдийг ашиглаж болно, жишээлбэл, хэрэв бид зөвхөн тодорхой IP-ээс траффикийг дахин чиглүүлэхийг хүсч байвал -s нэмэх замаар хийх болно. … Жишээлбэл, би зөвхөн 10.10.0.51-ээс ирэх урсгалыг дахин чиглүүлэх болно:

iptables -t nat -A PREROUTING -p tcp -s 10.10.0.51 --dport 80 -j DNAT --to-destination 10.10.0.2:443

Эсвэл бүхэл бүтэн сүлжээ (/ 24):

iptables -t nat -A PREROUTING -p tcp -s 10.10.0.0/24 --dport 80 -j DNAT --to-destination 10.10.0.2:443

Бид мөн сүлжээний интерфэйсийг -i ашиглан зааж өгч болно :

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to-destination 10.10.0.2:443

Төгсөв!

Энэ нь миний өмнө хэлсэнчлэн, iptables юм, та аль хэдийн мэдэгдэж байгаа зүйлийг ашиглаж болно, ингэснээр сервер яг таны хүссэн зүйлийг хийх болно.

Баярлалаа!

DedicatedServer_SubImage


Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

19 сэтгэгдэл, үлдээгээрэй

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно. Шаардлагатай талбарууд нь тэмдэглэгдсэн байна *

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.

  1.   Фер гэж хэлэв

    Бид үүнийг портыг дамжуулах боломжийг олгодог галт хананаас хийж болно шүү дээ? (холбогдох дүрмийг хэрэглэх).

    1.    KZKG ^ Гаара гэж хэлэв

      Тийм ээ, мэдээжийн хэрэг, эцэст нь Pfsense эсвэл бусад шиг галт хана, араасаа iptables ашиглана уу.

      1.    манхан гэж хэлэв

        Яг үнэнээр хэлэхэд pfsense нь iptables биш харин pf ашигладаг тул энэ нь дотроо bsd гэдгийг санаарай.

        1.    KZKG ^ Гаара гэж хэлэв

          Өө, миний муу!

  2.   Николас гэж хэлэв

    Зөвлөгөө өгсөнд маш их баярлалаа 🙂

    Надад хоёр эргэлзээ байна:
    1 - Өөрчлөлт байнгын шинжтэй юу? эсвэл серверийг дахин эхлүүлэхэд алдагдсан уу?
    2 - Надад нэг дэд сүлжээнд олон тохиолдол байдаг (A, B, C хэлнэ үү). Жишээ нь А би дүрмийг гадны IP руу чиглүүлж, В, С жишээнүүдээс curls ашиглан туршиж үзэхэд бүх зүйл гайхамшигтай ажилладаг. Асуудал нь А жишээнээс ажиллахгүй байгаа явдал юм. Би таны ip болон loopback интерфэйсийг хоёуланг нь ашиглахыг оролдсон бөгөөд аль нь ч ажиллахгүй байна:
    $ iptables -t nat -A PREROUTING -p tcp –dport 8080 -j DNAT - очих xxxx: 8080
    $ iptables -t nat -A PREROUTING -p tcp -i lo –dport 8080 -j DNAT - очих xxxx: 8080

    $ curl ip-yyyy: 8080 / hello_world
    curl: (7) ip-yyyy порт 8080-тай холбогдож чадсангүй: холболт татгалзав
    $ curl localhost: 8080 / hello_world
    curl: (7) localhost порт 8080-тай холбогдож чадсангүй: холболт татгалзав

    Асуудал юу байж болох талаар ямар нэгэн санаа байна уу?

    1.    KZKG ^ Гаара гэж хэлэв

      Тиймээ, дахин ачаалахад өөрчлөлт алга болсон тул үүнээс зайлсхийхийн тулд iptables-save & iptables-restore эсвэл үүнтэй төстэй зүйлийг ашиглах хэрэгтэй болно.
      Таны юу хийхийг би сайн ойлгосонгүй, жишээ нь А?

      1.    Николас гэж хэлэв

        Надад зөвхөн тодорхой ip (А серверүүд) холболтыг дэмждэг сервер байдаг, би цагаан жагсаалтад илүү олон ips нэмж оруулах боломжгүй (өргөтгөх боломжийн хувьд), тиймээс би гаднах сервер рүү чиглэсэн бүх траффик дамжуулагдахыг хүсч байна. гэж хэлсэн сервер (A).
        Практик байдлын хувьд надад үйлчилгээ тус бүрт ямар IP ашиглахыг тодорхойлсон дэлхийн тохиргоо байдаг тул энэ тохиолдолд "гадны үйлчилгээг ашиглахыг хүссэн хүн бүр IP A ашиглах ёстой" гэсэн үг юм.
        Би энэ нийтлэл дэх аргыг ашиглан амжилтанд хүрсэн боловч үүнийг ашиглахдаа А сервер өөрийн ip ашиглан үйлчилгээнд нэвтрэх боломжгүй гэсэн асуудал тулгараад байна (гэхдээ бусад бүх серверүүд үүнийг хийдэг).
        Одоогийн байдлаар миний олж мэдсэн хамгийн сайн зүйл бол серверийн A / etc / hosts файлд дэлхийн тохиргоог дарж гадаад ip рүү чиглүүлж зураглал нэмэх явдал байв.

  3.   braybaut гэж хэлэв

    Маш сайн, хэрэв би өөр мэйлийн сервертэй бол 143 портоос server1-ээс server2 руу урсгалыг дамжуулж болох бөгөөд имэйлүүд server2-т хүрэх болно, тийм үү?

    Баярлалаа!

    1.    KZKG ^ Гаара гэж хэлэв

      Онолын хувьд тийм ээ, энэ нь иймэрхүү байдлаар ажилладаг. Мэдээжийн хэрэг, та мэйл серверийг server2 on дээр зөв суулгасан байх ёстой

  4.   msx гэж хэлэв

    Бидний унших дуртай бичлэгүүдийн төрөл, баярлалаа!

  5.   Абрахам Ибарра гэж хэлэв

    Маш сайн нийтлэл, би ажиллаж байгаа төсөлтэй, танаас асуулт асуумаар байна, NAT функцтэй үйлдвэрлэлийн унтраалгаууд байдаг (доор IPTables ашигладаг гэж бодож байна), тоног төхөөрөмжид өөрчлөлт оруулахгүйгээр IP хаягийг орчуулах, жишээ нь надад Сервер байна. 10.10.2.1.X компьютеруудтай холбогддог 10.10.2 нь шилжүүлэгчээр програмчлагдсан тул 192.168.2.4 хаягтай компьютерийг серверээс 10.10.2.5 гэж харагдуулахаар програмчлагдсан тул тухайн IP хаягийг харуулахаар орчуулсан болно. Энэ хаягтай бусад компьютеруудаас би үүнийг Ubuntu эсвэл өөр тархалттай серверээс хийхийг хүсч байна, iptables-ийн дүрмүүд нь юу вэ?

  6.   Кук гэж хэлэв

    Маш сайн мэдээлэл баярлалаа ^ _ ^

  7.   Есүс гэж хэлэв

    Сайн үдэш.
    Надад дахин чиглүүлэлт хийх гэж оролдоход асуудал гарлаа. Би тайлбарлаж байна:
    Би Ubuntu дээр 2 сүлжээний карттай прокси сервертэй:
    eth0 = 192.168.1.1 нь бусад дотоод сүлжээнд холбогдсон байна.
    eth1 = 192.168.2.2 нь чиглүүлэгчтэй холбогдсон байна.
    Eth0-ээр дамжуулж ирдэг бүх зүйл надад eth1-ээр дамжиж, мөн прокси-ээр дамжин өнгөрөх шаардлагатай (би анхдагч порт нь 3128-тэй Squid ашигладаг), IPTABLES тохиргоон дахь түлхүүрийг олж чадахгүй байна.
    Надад ямар ч төрлийн хязгаарлалт хэрэггүй, зөвхөн зочилсон вэб хаягийн бүртгэлд бичлэг үлдэх болно.

    Энэ нь миний сэтгэлийг зовоож байгаа хэд хоногийн турш нэлээд даалгавар тул та надад тусалж чадна гэж найдаж байна.

    та бүхэнд баярлалаа.

  8.   Габриел гэж хэлэв

    Найз аа, би бусад серверүүдийн хувьд маш шинэлэг хүн байна, би ямар ч ойлголтгүй, гэхдээ би энэ сэдвийг сайн ойлгодог тул хурдан сурдаг бөгөөд миний асуулт бол дараахь серверүүдтэй холбогдсон 2 serv_1 ба serv_2 серверүүдтэй бөгөөд эдгээр серверүүд дээр би өөрийн cloud тохируулгатай, Би дараахь зүйлийг хийхийг хүсч байна.

    жишээ нь owncloud (ipowncloud) руу хандах хандалтыг байрлуулах үед ipip-ийн тодорхой мужийг serv_1 руу чиглүүлж, хэрэв өөр диапазонд байрлуулах бол ижил ipowncloud-ийг serv_1 руу чиглүүлж, 2 сервер байрлаж байх ёстой. хоёр өөр хотод болон IP мужууд өөр өөр боловч бүгд ижил сүлжээнд холбогдсон байх бөгөөд энэ нь эхний хэсэг байх болно, хоёрдугаарт энэ 2 серверийг толин тусгал болгон синхрончлох эсвэл өргөнийг оновчтой болгох үүднээс надад үүнийг зөвлөж байна. хамтлаг, хэрэв та надад үүнийг хэрхэн яаж хийхийг алхам алхмаар тайлбарлах гэж байгаа бол супер программист горимд шилжихгүй байхыг хүсч байна уу = (

  9.   Антонио Карризоза гэж хэлэв

    Сайн уу, уучлаарай, би сүлжээгээ бүрдүүлдэг бүх төхөөрөмжүүдийн холболтыг хариуцдаг шилжүүлэгчтэй бөгөөд үүний дараа галт хана, эцэст нь Интернет гарахад юу тохиолдсон бэ? Би дахин чиглүүлэлтийг дараах хэсэгт өгөхийг хүсч байна. шилжих бөгөөд хүссэн үйлчилгээ нь интернет биш бол галт хананд хүрэх шаардлагагүй болно.

  10.   Хуан гэж хэлэв

    Энэ аргыг ашиглан та HTTPS-ийг HTTP рүү дахин чиглүүлэх боломжтой юу?

  11.   мати гэж хэлэв

    Сайн уу, магадгүй жаахан орой болсон байж магадгүй, гэхдээ би нэг сүлжээнд байгаа вэб сервертэй холбогдохыг хүсвэл squid-ийг клиентийн IP-г өөрчлөхгүй байхын тулд яаж хийх ёстой вэ?

  12.   Лафат 32 гэж хэлэв

    Асуусныхаа төлөө надтай битгий муугаар харьц. Үүнийг Windows дээр хийж болох уу?

  13.   Мартин гэж хэлэв

    Энэ мэдээлэл надад ашигтай байсан. Залуус та үргэлж итгэж болно, би англи хэл дээр ямар нэгэн зүйл олж чадахгүй байгаа бол ихэнхдээ испани хэл дээр хайж үзээрэй, тэр үед би бараг үргэлж энэ сайт руу ордог, баярлалаа.