អ្វីដែលសាមញ្ញបំផុតនៅពេលគ្រប់គ្រងម៉ាស៊ីនមេកំពុងប្តូរទិសដៅចរាចរណ៍។
ឧបមាថាយើងមានម៉ាស៊ីនមេដែលមានសេវាកម្មជាក់លាក់កំពុងដំណើរការប៉ុន្តែសម្រាប់ហេតុផលណាមួយដែលយើងផ្លាស់ប្តូរសេវាកម្មមួយក្នុងចំណោមសេវាកម្មទាំងនោះ (ខ្ញុំមិនដឹងឧទាហរណ៍ pop3 ដែលជាច្រកលេខ ១១០) ទៅម៉ាស៊ីនមេផ្សេងទៀត។ រឿងធម្មតានិងញឹកញាប់បំផុតគឺការផ្លាស់ប្តូរ IP ជាធម្មតានៅក្នុងកំណត់ត្រា DNS ទោះជាយ៉ាងណាក៏ដោយប្រសិនបើមាននរណាម្នាក់កំពុងប្រើ IP ជំនួសឱ្យដែនរងវានឹងត្រូវបានប៉ះពាល់។
អ្វីដែលត្រូវធ្វើ? ... សាមញ្ញបញ្ជូនទិសដៅចរាចរណ៍ដែលម៉ាស៊ីនមេទទួលតាមរយៈច្រកនោះទៅម៉ាស៊ីនមេផ្សេងទៀតដែលមានច្រកដូចគ្នា។
តើយើងចាប់ផ្តើមប្តូរទិសដៅចរាចរណ៍យ៉ាងដូចម្តេច?
រឿងដំបូងគឺថាយើងត្រូវបានអនុញ្ញាតឱ្យប្រើ បញ្ជូនបន្ត នៅលើម៉ាស៊ីនមេសម្រាប់នេះយើងនឹងដាក់ដូចខាងក្រោមៈ
echo "1" > /proc/sys/net/ipv4/ip_forward
អ្នកក៏អាចប្រើពាក្យបញ្ជាផ្សេងទៀតក្នុងករណីដែលពាក្យបញ្ជាមុនមិនដំណើរការសម្រាប់អ្នក (វាបានកើតឡើងចំពោះខ្ញុំដូចនេះនៅលើ CentOS):
sysctl net.ipv4.ip_forward=1
បន្ទាប់មកយើងនឹងចាប់ផ្តើមបណ្តាញឡើងវិញ៖
service networking restart
នៅក្នុង RPM distros ដូចជា CentOS និងផ្សេងទៀតវាអាចជា៖
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 ទៅម៉ាស៊ីនមេផ្សេងទៀត (ឧ។ ១០.១០.០.២) ដែលនឹងនៅតែទទួលបានចរាចរណ៍នោះតាមរយៈលេខ ១១០ (វាគឺជាសេវាកម្មតែមួយ):
iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 10.10.0.2:110
ម៉ាស៊ីនបម្រើ ១០.១០.០.២.២ នឹងឃើញថារាល់កញ្ចប់ឬសំណើទាំងអស់គឺមកពី IP របស់អតិថិជនក្នុងករណីដែលពួកគេចង់ហែលទឹកសំណើនោះមានន័យថាម៉ាស៊ីនមេទី ២ ឃើញថាការស្នើសុំមកដល់ IP របស់ម៉ាស៊ីនមេទី ១ (និងនៅក្នុង ដែលយើងអនុវត្តការប្តូរទិស) វាក៏នឹងត្រូវដាក់ខ្សែទីពីរផងដែរ៖
iptables -t nat -A POSTROUTING -j MASQUERADE
សំណួរនិងចម្លើយមួយចំនួន
ក្នុងឧទាហរណ៍ខ្ញុំបានប្រើកំពង់ផែដូចគ្នាក្នុងឱកាសទាំងពីរ (១១០) ទោះយ៉ាងណាពួកគេអាចប្តូរទិសដៅពីកំពង់ផែមួយទៅមួយដោយមិនមានបញ្ហា។ ឧទាហរណ៍សន្មតថាខ្ញុំចង់ប្តូរទិសចរាចរពីកំពង់ផែ ៨០ ទៅ ៤៤៣ នៅលើម៉ាស៊ីនមេមួយផ្សេងទៀតព្រោះនេះអាចជាៈ
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.0.2:443
នេះគឺជា iptablesពួកគេអាចប្រើប៉ារ៉ាម៉ែត្រផ្សេងទៀតទាំងអស់ដែលយើងដឹងឧទាហរណ៍ប្រសិនបើយើងគ្រាន់តែចង់ប្តូរទិសដៅចរាចរណ៍ពី IP ជាក់លាក់វានឹងបន្ថែម -s ។ …ឧទាហរណ៍ខ្ញុំនឹងប្តូរទិសដៅតែចរាចរណ៍ដែលចេញពីថ្ងៃទី ១០.១០.០.៥១៖
iptables -t nat -A PREROUTING -p tcp -s 10.10.0.51 --dport 80 -j DNAT --to-destination 10.10.0.2:443
ឬបណ្តាញទាំងមូល (/ ២៤)៖
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
ចប់!
នេះដូចដែលខ្ញុំបាននិយាយរួចមកហើយគឺអាយភីធីអ្នកអាចអនុវត្តអ្វីដែលគេដឹងរួចហើយដូច្នេះម៉ាស៊ីនមេធ្វើអ្វីៗដែលអ្នកចង់ធ្វើ។
សូមអរគុណ!
៥៧ យោបល់ទុកអ្នក
យើងក៏អាចធ្វើវាបានពីជញ្ជាំងភ្លើងដែលអនុញ្ញាតឱ្យកំពង់ផែបញ្ជូនបន្តមែនទេ? (អនុវត្តច្បាប់ដែលត្រូវគ្នា) ។
បាទ / ចាសពិតណាស់នៅចុងបញ្ចប់ជញ្ជាំងភ្លើងដូចជា Pfsense ឬផ្សេងទៀតប្រើ iptables ពីខាងក្រោយ។
ដើម្បីឱ្យច្បាស់ pfsense មិនប្រើ iptables ទេប៉ុន្តែ pf សូមចាំថាវាគឺជាប៊ីប៊ីនៅខាងក្នុង។
ត្រូវហើយអាក្រក់!
សូមអរគុណខ្លាំងណាស់សម្រាប់ព័ត៌មានជំនួយ🙂
ខ្ញុំមានការសង្ស័យពីរបី:
១ - តើការផ្លាស់ប្តូរជាអចិន្ត្រៃយ៍ឬ? ឬវាបាត់នៅពេលចាប់ផ្តើមម៉ាស៊ីនមេឡើងវិញ?
2 - ខ្ញុំមានករណីជាច្រើន (និយាយ A, B និង C) នៅលើបណ្តាញតែមួយ។ ឧទាហរណ៍ A ខ្ញុំអនុវត្តច្បាប់ដើម្បីធ្វើចរាចរណ៍ទៅ IP ខាងក្រៅហើយសាកល្បងជាមួយ curls ពីវត្ថុ B និង C អ្វីគ្រប់យ៉ាងដំណើរការអស្ចារ្យ។ បញ្ហាគឺមកពីឧទាហរណ៍ A វាមិនដំណើរការទេ។ ខ្ញុំបានព្យាយាមប្រើទាំងអាយភីនិងចំណុចប្រទាក់រង្វិលរបស់អ្នកហើយមិនដំណើរការទេ៖
$ iptables -t nat -A PREROUTING -p tcp លិខិតឆ្លងដែន ៨០៨០ -j DNAT –to- ទិសដៅ xxxx: ៨០៨០
$ iptables -t nat -A PREROUTING -p tcp -i lo –dport 8080 -j DNAT –to- ទិសដៅ xxxx: 8080
$ curl ip-yyyy: ៨០៨០ / សួស្តី_world
curl: (៧) បានបរាជ័យក្នុងការភ្ជាប់ទៅកំពង់ផែ ip -Yyy ៨០៨០: ការភ្ជាប់បដិសេធ
$ curl localhost: ៨០៨០ / hello_world
curl: (៧) បានបរាជ័យក្នុងការភ្ជាប់ទៅកំពង់ផែ localhost ៨០៨០: ការភ្ជាប់បដិសេធ
គំនិតអ្វីដែលបញ្ហាអាចជា?
បាទការផ្លាស់ប្តូរត្រូវបានបាត់បង់នៅពេលចាប់ផ្តើមឡើងវិញអ្នកនឹងត្រូវប្រើ iptables-save & iptables-restore ឬអ្វីមួយដូចនោះដើម្បីចៀសវាង។
ខ្ញុំពិតជាមិនយល់ពីអ្វីដែលអ្នកចង់ធ្វើទេឧទាហរណ៍អា?
ខ្ញុំមានម៉ាស៊ីនមេដែលគាំទ្រតែការតភ្ជាប់ពីអាយភីអេស (អេសអេស) ខ្ញុំមិនអាចឬចង់បន្ថែមលេខកូដបន្ថែមទៅបញ្ជីសុវត្ថិភាព (សម្រាប់បញ្ហាដែលអាចធ្វើមាត្រដ្ឋានបាន) ដូច្នេះ ខ្ញុំចង់ឲ្យ ចរាចរទាំងអស់ទៅម៉ាស៊ីនមេខាងក្រៅឆ្លងកាត់ម៉ាស៊ីនមេ (A) ។ ) ។
ចំពោះបញ្ហាជាក់ស្តែងខ្ញុំមានការកំណត់ជាសកលដែលកំណត់ថាតើអាយភីណាមួយដែលត្រូវប្រើសម្រាប់សេវាកម្មនីមួយៗដូច្នេះក្នុងករណីនេះវាដូចជាអ្វីមួយ "មនុស្សគ្រប់គ្នាដែលចង់ប្រើសេវាកម្មខាងក្រៅត្រូវតែប្រើអាយភីអេ"
ខ្ញុំទទួលបានជោគជ័យដោយប្រើវិធីសាស្រ្តក្នុងអត្ថបទនេះប៉ុន្តែខ្ញុំមានបញ្ហាថានៅពេលដាក់ពាក្យសុំវាម៉ាស៊ីនមេ A មិនអាចចូលប្រើសេវាកម្មដោយប្រើ ip ផ្ទាល់របស់វាទេ (ប៉ុន្តែម៉ាស៊ីនមេផ្សេងទៀតធ្វើ) ។
រហូតមកដល់ពេលនេះអ្វីដែលល្អបំផុតដែលខ្ញុំបានរកឃើញគឺការបន្ថែមផែនទីនៅក្នុងឯកសាររបស់ម៉ាស៊ីនអេស។
ល្អណាស់ប្រសិនបើខ្ញុំមានម៉ាស៊ីនមេអ៊ីមែលផ្សេងទៀតខ្ញុំអាចបញ្ជូនបន្តពីកំពង់ផែលេខ ១៤៣ ពី server143 ទៅ server1 ហើយអ៊ីមែលនឹងទាក់ទងខ្ញុំនៅលើ server2 មែនទេ?
ទាក់ទង
តាមទ្រឹស្តីបាទវាដំណើរការដូចនេះ។ ប្រាកដណាស់អ្នកត្រូវតែតំឡើងម៉ាស៊ីនមេម៉ែលអោយបានត្រឹមត្រូវនៅលើ server2 🙂
ប្រភេទប្រកាសដែលយើងចូលចិត្តអានសូមអរគុណ!
អត្ថបទល្អខ្ញុំមានគំរោងដែលខ្ញុំកំពុងធ្វើការហើយខ្ញុំចង់សួរសំនួរអ្នកមានឧបករណ៍ប្តូរឧស្សាហកម្មដែលមានមុខងារ NAT (ខ្ញុំគិតថាពួកគេប្រើ IPTables ខាងក្រោម) ដើម្បីបកប្រែអាសយដ្ឋាន IP ដោយមិនមានការផ្លាស់ប្តូរឧបករណ៍។ ឧទាហរណ៍ខ្ញុំមានម៉ាស៊ីនមេ ១០.១០.២.១ ដែលមានទំនាក់ទំនងជាមួយកុំព្យូទ័រ ១០.១០.២.X ហើយតាមរយៈកុងតាក់ត្រូវបានរៀបចំកម្មវិធីដូច្នេះកុំព្យូទ័រដែលមានអាស័យដ្ឋាន ១៩២.១៦៨.២.៤ ត្រូវបានគេមើលឃើញពីម៉ាស៊ីនមេថា ១០.១០.២.៥ វាបានបកប្រែថាអាយភី ពីកុំព្យូទ័រផ្សេងទៀតដែលមានអាស័យដ្ឋាននោះខ្ញុំចង់ធ្វើវាចេញពីម៉ាស៊ីនមេដែលមានអ៊ូប៊ុនទូឬចែកចាយផ្សេងទៀតតើច្បាប់ iptables នឹងទៅជាយ៉ាងណា?
ព័ត៌មានល្អណាស់សូមអរគុណ ^ _ ^
ល្ងាចដ៏ល្អ។
ខ្ញុំមានបញ្ហាក្នុងការព្យាយាមប្តូរទិស។ ខ្ញុំពន្យល់:
ខ្ញុំមានម៉ាស៊ីនមេប្រូកស៊ីនៅក្នុងអ៊ូប៊ុនទូមានកាតបណ្តាញចំនួន ២៖
eth0 = 192.168.1.1 ត្រូវបានភ្ជាប់ទៅបណ្តាញក្នុងស្រុកដែលនៅសល់។
eth1 = 192.168.2.2 ត្រូវបានភ្ជាប់ទៅរ៉ោតទ័រ។
ខ្ញុំត្រូវការអ្វីគ្រប់យ៉ាងដែលកើតឡើងតាមរយៈ eth0 ដើម្បីឆ្លងកាត់ eth1 និងតាមរយៈប្រូកស៊ីផងដែរ (ខ្ញុំប្រើ Squid ដែលច្រកលំនាំដើមគឺ 3128) ហើយខ្ញុំមិនអាចរកឃើញកូនសោនៅក្នុងការកំណត់រចនាសម្ព័ន្ធ IPTABLES ទេ។
ខ្ញុំមិនត្រូវការការរឹតត្បិតណាមួយទេមានតែកំណត់ត្រាដែលមាននៅក្នុងកំណត់ហេតុនៃអាសយដ្ឋានគេហទំព័រដែលត្រូវបានទស្សនា។
ខ្ញុំសង្ឃឹមថាអ្នកអាចជួយខ្ញុំបានព្រោះវាជាកិច្ចការដ៏លំបាកដែលបានធ្វើឱ្យខ្ញុំព្រួយបារម្ភអស់រយៈពេលពីរបីថ្ងៃ។
សូមអរគុណ។
មិត្តខ្ញុំខ្ញុំថ្មីណាស់ចំពោះម៉ាស៊ីនមេផ្សេងទៀតខ្ញុំមិនមានគំនិតទេប៉ុន្តែខ្ញុំយល់ច្បាស់អំពីប្រធានបទហើយខ្ញុំរៀនយ៉ាងឆាប់រហ័សសំណួររបស់ខ្ញុំដូចខាងក្រោមខ្ញុំមានម៉ាស៊ីនមេចំនួន ២ គឺ serv_2 និង serv_1 ដែលខ្ញុំបានភ្ជាប់ទៅនឹងត្រាណិតដដែលនៅក្នុងម៉ាស៊ីនមេទាំងនេះខ្ញុំមាន រៀបចំផ្ទាល់ខ្លួនខ្ញុំចង់ធ្វើដូចខាងក្រោមៈ
ថាជួរជាក់លាក់នៃលេខកូដឧទាហរណ៍ឧទាហរណ៍ជួរ ៣ នៅពេលដាក់ ip ចូលដំណើរការទៅម៉ាស៊ីនផ្ទាល់ខ្លួន (ipowncloud) ត្រូវបានតម្រង់ឆ្ពោះទៅ serv_1 ហើយបើវាជាជួរផ្សេងមួយទៀតដែលដាក់ ipowncloud ដដែលត្រូវបានបញ្ជូនទៅ serv_1 នេះដើម្បី ឲ្យ ម៉ាស៊ីនមេ ២ ស្ថិតនៅ នៅក្នុងទីក្រុងពីរផ្សេងគ្នានិងជួរ IP ខុសគ្នាប៉ុន្តែវាទាំងអស់ស្ថិតនៅលើបណ្តាញតែមួយដែលជាផ្នែកទីមួយទីពីរនឹងច្បាស់គឺធ្វើសមកាលកម្មម៉ាស៊ីនមេទាំងពីរនេះដើម្បីឱ្យពួកគេឆ្លុះកញ្ចក់ឬពួកគេណែនាំខ្ញុំតាមលំដាប់ ដើម្បីបង្កើនប្រសិទ្ធិភាពក្រុមទទឹងសូមប្រសិនបើអ្នកនឹងពន្យល់ខ្ញុំពីរបៀបធ្វើវាជាជំហាន ៗ មិនមែនជារបៀបអ្នកសរសេរកម្មវិធីទំនើប = (
សួស្តីសូមអភ័យទោសខ្ញុំមានកុងតាក់ទទួលខុសត្រូវលើការទំនាក់ទំនងនៃឧបករណ៍ទាំងអស់ដែលបង្កើតបណ្តាញរបស់ខ្ញុំហើយបន្ទាប់ពីនេះជាជញ្ជាំងភ្លើងហើយទីបំផុតការចាកចេញពីអ៊ិនធឺរណែតតើមានអ្វីកើតឡើងគឺខ្ញុំចង់ប្តូរទិសដៅទៅក្នុងកុងតាក់ និងមិនចាំបាច់ទៅដល់ជញ្ជាំងភ្លើងទេលុះត្រាតែសេវាកម្មដែលបានស្នើសុំគឺអ៊ីនធឺណិត។
ដោយប្រើវិធីសាស្ត្រនេះអ្នកអាចប្តូរទិសដៅ HTTPS ទៅ HTTP?
សួស្តីប្រហែលជាយឺតពេលហើយប៉ុន្តែខ្ញុំចង់សួរអ្នកថាតើខ្ញុំត្រូវធ្វើយ៉ាងម៉េចដើម្បីកុំឱ្យមឹកមិនអាចកែប្រែអាយភីរបស់អតិថិជននៅពេលខ្ញុំចង់ភ្ជាប់ទៅបណ្តាញអ៊ីនធឺណិតនៅលើបណ្តាញតែមួយ?
កុំធ្វើបាបខ្ញុំចំពោះការស្នើសុំ។ តើនេះអាចធ្វើបាននៅក្នុងវីនដូទេ?
ព័ត៌មាននេះមានប្រយោជន៍សម្រាប់ខ្ញុំ។ ដូចរាល់ដងដែលអ្នកអាចជឿទុកចិត្តបាននៅពេលដែលខ្ញុំមិនអាចរកឃើញអ្វីមួយជាភាសាអង់គ្លេសខ្ញុំតែងតែស្វែងរកភាសាអេស្ប៉ាញហើយនៅពេលនោះខ្ញុំតែងតែមកគេហទំព័រនេះ។ សូមអរគុណ។
ខ្ញុំមានរ៉ោតទ័រ 4G ដែលជាអតិថិជននៃបណ្តាញដែលខ្ញុំមិនគ្រប់គ្រង (ជាក់ស្តែងខ្ញុំជាអតិថិជន)... រ៉ោតទ័រនេះគឺជាច្រកទៅកាន់បណ្តាញពីចម្ងាយតាមរយៈ OpenVPN ។ លើសពីនេះ រ៉ោតទ័របាននិយាយថា បំពេញមុខងារនៃការបញ្ជូនបន្តដើម្បីចូលប្រើច្រក 80 នៃម៉ាស៊ីនមេនៃបណ្តាញរងមួយក្នុងចំណោមបណ្តាញរងទាំងនោះនៅក្នុងវាល។
នេះជាការប្រកាសដែលខ្ញុំត្រូវដាក់ក្នុងរ៉ោតទ័រជាច្បាប់ជញ្ជាំងភ្លើងផ្ទាល់ខ្លួន «-t nat -A POSTROUTING -j MASQUERADE»
សូមអរគុណសម្រាប់ជំនួយ!