คำถามติดแท็ก port-forwarding

การส่งต่อพอร์ตบนไฟร์วอลล์หรือผ่าน SSH

7
ฉันจะพอร์ตไปข้างหน้าด้วย iptables ได้อย่างไร
ฉันต้องการเชื่อมต่อเข้ามาใน ppp0 บนพอร์ต 8001 เพื่อกำหนดเส้นทางไปยัง 192.168.1.200 บน eth0 บนพอร์ต 8080 ฉันมีกฎสองข้อนี้ -A PREROUTING -p tcp -m tcp --dport 8001 -j DNAT --to-destination 192.168.1.200:8080 -A FORWARD -m state -p tcp -d 192.168.1.200 --dport 8080 --state NEW,ESTABLISHED,RELATED -j ACCEPT และมันไม่ทำงาน ฉันพลาดอะไรไป

2
วิธีการส่งต่อพอร์ตจาก ip หนึ่งไปยัง ip อื่นในเครือข่ายเดียวกัน
ผมอยากจะทำบางอย่างในNAT iptablesเพื่อให้ทุกแพ็กเก็ตที่จะมาถึง192.168.12.87และพอร์ต80จะถูกส่งต่อไปยังท่าเรือ192.168.12.7780 วิธีการทำเช่นนี้กับ iptables? หรือ มีวิธีอื่นอีกไหมในการบรรลุเป้าหมายเดียวกัน?

4
การเปลี่ยนเส้นทางพอร์ต iptables ไม่ทำงานสำหรับ localhost
ฉันต้องการเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดจากพอร์ต 443 ไปยังพอร์ตภายใน 8080 ฉันใช้การกำหนดค่านี้สำหรับ iptables: iptables -t nat -I PREROUTING --source 0/0 --destination 0/0 -p tcp \ --dport 443 -j REDIRECT --to-ports 8080 สิ่งนี้ใช้ได้กับไคลเอนต์ภายนอกทั้งหมด แต่ถ้าฉันพยายามที่จะเข้าถึงพอร์ต 443 จาก maschine เดียวกันฉันจะได้รับการเชื่อมต่อปฏิเสธข้อผิดพลาด wget https://localhost ฉันจะขยายกฎ iptables เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลภายในได้อย่างไร

12
วนกลับไปยังที่อยู่ IP สาธารณะที่ส่งต่อจากเครือข่ายท้องถิ่น - Hairpin NAT
นี่เป็นคำถามที่ยอมรับได้เกี่ยวกับกิ๊บ NAT (Loopback NAT) รูปแบบทั่วไปของคำถามนี้คือ: เรามีเครือข่ายกับลูกค้าเซิร์ฟเวอร์และเราเตอร์ NAT มีการส่งต่อพอร์ตบนเราเตอร์ไปยังเซิร์ฟเวอร์ดังนั้นบริการบางอย่างของมันจึงพร้อมใช้งานจากภายนอก เรามี DNS ที่ชี้ไปที่ IP ภายนอก ไคลเอนต์เครือข่ายท้องถิ่นล้มเหลวในการเชื่อมต่อ แต่ทำงานภายนอก ทำไมสิ่งนี้ถึงล้มเหลว ฉันจะสร้างรูปแบบการตั้งชื่อแบบรวมเป็นหนึ่งเดียว (ชื่อ DNS ที่ทำงานได้ทั้งภายในและภายนอก) คำถามนี้มีคำตอบที่ถูกผสานจากคำถามอื่น ๆ พวกเขาเดิมอ้างถึง FreeBSD, D-Link, Microtik และอุปกรณ์อื่น ๆ พวกเขากำลังพยายามแก้ไขปัญหาเดียวกันทั้งหมด

3
จะส่งต่อพอร์ต 80 ไปยังพอร์ตอื่นบน samemachine ได้อย่างไร
ฉันจะส่งต่อคำขอที่เข้ามาในพอร์ต 80 ไปยังพอร์ตอื่นบนเครื่อง Linux เดียวกันได้อย่างไร ฉันเคยทำสิ่งนี้โดยการเปลี่ยนnat.confแต่เครื่องที่ฉันใช้ไม่มี NAT ทางเลือกคืออะไร

8
ส่งต่อพอร์ตบน Linux โดยไม่มี iptables หรือไม่
ฉันมีเซิร์ฟเวอร์ Linux VPS (virtuozzo) และฉันต้องการตั้งค่าการส่งต่อพอร์ต แต่ผู้ให้บริการโฮสต์ของฉันไม่อนุญาตโมดูลเคอร์เนลiptables-natดังนั้นiptables -t nat- ไม่ทำงาน ฉันกำลังมองหาวิธีอื่นในการทำ ฉันรู้ว่าฉันสามารถส่งต่อพอร์ตโดยใช้opensshแต่ฉันต้องส่งต่อ 20 พอร์ตที่แตกต่างกัน, tcp และ udp ดังนั้นนี่ไม่ใช่ตัวเลือก มีซอฟต์แวร์ใด ๆ สำหรับ linux ที่สามารถทำการส่งต่อพอร์ตได้หรือไม่?

5
การส่งต่อพอร์ตไปยังแขกใน libvirt / KVM
ฉันจะส่งต่อพอร์ตบนเซิร์ฟเวอร์ที่ใช้ libvirt / KVM ไปยังพอร์ตที่ระบุใน VM ได้อย่างไรเมื่อใช้ NAT ตัวอย่างเช่นโฮสต์มี IP สาธารณะเท่ากับ 1.2.3.4 ฉันต้องการส่งต่อพอร์ต 80 ถึง 10.0.0.1 และพอร์ต 22 ถึง 10.0.0.2 ฉันคิดว่าฉันต้องเพิ่มกฎ iptables แต่ฉันไม่แน่ใจว่าเหมาะสมและควรระบุอะไร เอาต์พุตของ iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:domain ACCEPT tcp -- anywhere anywhere tcp dpt:domain ACCEPT …

1
ฉันสามารถใช้ ufw เพื่อตั้งค่าพอร์ตไปข้างหน้าได้หรือไม่
ฉันกำลังใช้ ufw เพื่อบังคับใช้กฎไฟร์วอลล์พื้นฐานบางอย่าง เป็นไปได้ไหมที่จะใช้ ufw เพื่อทำการส่งต่อพอร์ต ฉันต้องการส่งต่อทราฟฟิกขาเข้าไปยังเซิร์ฟเวอร์ของฉัน (เครื่องเดียวกันที่รัน ufw) บนพอร์ต 80 ถึงพอร์ต 8080 (ทราฟฟิก http ที่ส่งต่อไปยัง Tomcat) Th

5
ส่งต่อ SSH ผ่านอุโมงค์ SSH
สถานการณ์ของฉัน: ฉัน (localhost) -> เซิร์ฟเวอร์ A (ip: 100.100.100.100) => (เซิร์ฟเวอร์ B (ip: 192.168.25.100) เซิร์ฟเวอร์ .... ) ฉันสามารถ SSH เข้าสู่เซิร์ฟเวอร์ได้เนื่องจากมี IP จริงถ้าฉันต้องการเชื่อมต่อกับเซิร์ฟเวอร์ b ฉันจะใช้เซิร์ฟเวอร์ SSH กับ IP (192.168.25.100) ตัวอย่าง: จากพีซีของฉัน: ssh user@100.100.100.100 จากนั้นใน 100.100.100.100 ssh user@192.168.25.100 นี่จะพาฉันไปที่เซิร์ฟเวอร์ B ด้วย ssh ถ้าฉันต้องการเชื่อมต่อกับเซิร์ฟเวอร์ b โดยตรง ฉันจะทำอย่างไร ตัวอย่าง: จาก oc ของฉัน: ssh@192.168.25.100 ฉันได้ลองทำสิ่งต่อไปนี้แล้ว: ssh …

7
เหตุใดฉันไม่สามารถเข้าถึงอินสแตนซ์ CouchDB ของฉันภายนอกบนเซิร์ฟเวอร์ Ubuntu 9.04
อัปเดต:ฉันทำให้มันทำงานตอนนี้ คำตอบของ Jim Zajkowski ช่วยให้ฉันตรวจพบว่า/etc/init.d/couchdbของฉันรีบูตไม่ได้รีบูตอินสแตนซ์ของจริง หลังจากที่ฉันฆ่ากระบวนการ CouchDB ด้วยตนเองและเริ่มต้นอินสแตนซ์ใหม่มันรับการเปลี่ยนแปลง BindAddress ที่จำเป็น ฉันได้ติดตั้ง CouchDB ผ่านทาง ความถนัดติดตั้ง couchdb จากเซิร์ฟเวอร์ของฉันฉันสามารถเชื่อมต่อผ่าน telnet localhost 5984 และรันคำสั่ง RESTful เมื่อฉันพยายามเข้าถึงเซิร์ฟเวอร์จากเครื่องอื่นบนเครือข่ายของเราหรือจากเครื่องภายนอกเครือข่ายของเราฉันได้รับข้อผิดพลาดการเชื่อมต่อถูกรีเซ็ต ฉันได้ตั้งค่าการส่งต่อพอร์ตบนเราเตอร์และเซิร์ฟเวอร์นั้นสามารถเข้าถึงได้ผ่าน Apache, Tomcat, SSH และอื่น ๆ ฉันใหม่สำหรับ Linux / Ubuntu ดังนั้นฉันไม่แน่ใจว่ามีไฟร์วอลล์เริ่มต้นที่บล็อกการเชื่อมต่อหรือไม่ดังนั้นฉันจึงวิ่ง: iptables -A อินพุต -p tcp --dport 5984 -j ยอมรับ แต่มันก็ไม่ได้ช่วยอะไร นี่คือดัมพ์จากการรันiptables -L -n -v Chain INPUT (policy …

4
การส่งต่อพอร์ตระยะไกล SSH ล้มเหลว
การติดตามผล:ดูเหมือนว่าชุดการตัดการเชื่อมต่ออย่างรวดเร็วที่เกิดขึ้นพร้อมกับการใช้งานเซิร์ฟเวอร์เพียงไม่กี่เดือนนั้นอาจเป็นเรื่องบังเอิญและเพิ่งจะเปิดเผยปัญหาที่แท้จริง เหตุผลที่ไม่สามารถเชื่อมต่อใหม่ได้เกือบจะแน่นอนเนื่องจากค่า AliveInterval (คำตอบของ kasperd) การใช้ตัวเลือก ExitOnForwardFailure ควรอนุญาตให้การหมดเวลาเกิดขึ้นอย่างถูกต้องก่อนทำการเชื่อมต่ออีกครั้งซึ่งควรแก้ปัญหาในกรณีส่วนใหญ่ คำแนะนำของ MadHatter (สคริปต์การฆ่า) น่าจะเป็นวิธีที่ดีที่สุดเพื่อให้แน่ใจว่าอุโมงค์สามารถเชื่อมต่อได้แม้ว่าทุกอย่างจะล้มเหลว ฉันมีเซิร์ฟเวอร์ (A) อยู่หลังไฟร์วอลล์ที่เริ่มต้นช่องสัญญาณย้อนกลับในหลายพอร์ตไปยัง DigitalOcean VPS (B) ขนาดเล็กเพื่อให้ฉันสามารถเชื่อมต่อกับ A ผ่านทางที่อยู่ IP ของ B อุโมงค์ทำงานอย่างต่อเนื่องเป็นเวลาประมาณ 3 เดือน แต่ก็ล้มเหลวทันทีสี่ครั้งใน 24 ชั่วโมงที่ผ่านมา สิ่งเดียวกันเกิดขึ้นชั่วขณะหนึ่งกลับไปที่ผู้ให้บริการ VPS รายอื่น - ใช้งานได้หลายเดือนจากนั้นก็ล้มเหลวอย่างรวดเร็วหลายครั้ง ฉันมีสคริปต์บนเครื่องที่จะรันคำสั่งอุโมงค์ ( ssh -R *:X:localhost:X address_of_Bสำหรับพอร์ตแต่ละ X) Warning: remote port forwarding failed for listen port …

7
ส่งต่อพอร์ตโลคัลหรือไฟล์ซ็อกเก็ตไปยังไฟล์ซ็อกเก็ตระยะไกล
คำถามอย่างรวดเร็ว - ฉันใช้งานกล่องลินุกซ์สองช่องตัวหนึ่งซึ่งเป็นเดสก์ท็อปของฉันและอีก VPS เพื่อเหตุผลด้านความปลอดภัยในส่วน VPS ฉันเลือกใช้การเชื่อมต่อซ็อกเก็ตกับ MySQL ( /var/run/mysqld/mysql.sock) ฉันรู้ว่าฉันสามารถขุดอุโมงค์แบบนี้ได้: ssh -L 3307:127.0.0.1:3306 user@site.comถ้าฉันตั้งค่าเซิร์ฟเวอร์ sql ระยะไกลเพื่อฟังบนพอร์ตบางตัว แต่สิ่งที่ฉันอยากรู้คือฉันสามารถทำอะไรได้บ้าง: ssh -L /path/to/myremotesqlserver.sock:/var/run/mysqld/mysql.sockดังนั้นการขุดอุโมงค์สองซ็อกเก็ตซึ่งต่างจากสองพอร์ต โซลูชันที่ได้รับการยอมรับอย่างสมบูรณ์ก็คือการส่งต่อพอร์ตโลคัลไปยังไฟล์ซ็อกเก็ตระยะไกล แต่ถ้าเป็นไปได้ฉันพยายามไม่ให้เซิร์ฟเวอร์ tcp ทำงานบนกล่องระยะไกล (และใช่ฉันรู้ว่า TCP จะง่ายขึ้น)

2
คนจรจัดส่งต่อช่วงของพอร์ต
มีวิธีการส่งต่อช่วงของพอร์ตโดยใช้คนเร่ร่อน 1.2.1 หรือสูงกว่า? ฉันรู้ว่าคุณสามารถส่งต่อพอร์ตจำนวนเท่าใดก็ได้โดยใช้ config.vm.forward_port 80, 4567 หรือคำตอบคืออย่าใช้คนเร่ร่อนทำสิ่งนั้น?

3
วิธีการ ssh ไปยังเซิร์ฟเวอร์ที่ฉันไม่สามารถเข้าถึงได้โดยตรง?
บริบท ฉันกำลังเรียกใช้ Ubuntu Desktop เป็นเครื่องหลักของฉันซึ่งฉันจะเรียก D. ฉันต้องการเชื่อมต่อกับเซิร์ฟเวอร์ S ผ่าน ssh แต่ไฟร์วอลล์ปิดกั้นฉัน ฉันมีการเข้าถึงเซิร์ฟเวอร์ S ผ่านเส้นทางที่ยุ่งยากมากที่เกี่ยวข้องกับเครื่องเสมือน Windows และฉาบ สิ่งนี้ทำให้การทำงานกับเซิร์ฟเวอร์นี้น่ารำคาญอย่างยิ่ง: สภาพแวดล้อมที่แตกต่างอย่างสิ้นเชิงการคัดลอก / วางไม่ทำงานฉันไม่สามารถใช้เดสก์ท็อปของฉันในขณะที่เชื่อมต่อกับมันได้อย่างเหมาะสม (Alt-Tab ถูกทำลายโดยเครื่องเสมือน) เป็นต้น ฉันตรวจสอบแล้วว่าฉันสามารถ ssh จากเซิร์ฟเวอร์ S ไปยังเครื่องเดสก์ท็อปของฉัน D (ตรงกันข้ามกับสิ่งที่ฉันต้องการ) ฉันสามารถเริ่ม "ส่งต่อพอร์ต" หรือคล้ายกันจากเซิร์ฟเวอร์เพื่อให้ฉันสามารถ ssh ไปยังเซิร์ฟเวอร์จากเดสก์ทอปของฉันได้หรือไม่

1
การส่งต่อพอร์ตย้อนกลับ SSH ด้วย PuTTy - วิธีระบุที่อยู่ผูก
ใช้ Putty ฉันได้ตั้งค่า reverse proxy ซึ่งอนุญาตให้ฉันเชื่อมต่อกับพอร์ต 8080 ของเซิร์ฟเวอร์ที่server.tldไปยังพอร์ต 80 ของเครื่องที่เริ่มการเชื่อมต่อ SSH เซิร์ฟเวอร์อนุญาตให้ฉันเชื่อมต่อlocalhost:8080และส่งคืนผลลัพธ์initiator:80เมื่อฉันเชื่อมต่อบนเซิร์ฟเวอร์ คำถามนี้บอกว่าเปิดใช้งาน GatewayPort และเชื่อมโยงกับที่อยู่ทั้งหมด ใช้ Putty ฉันจะแสดงพอร์ต 8080 บนเซิร์ฟเวอร์ได้อย่างไรเมื่อมีการร้องขอผ่านทางอินเทอร์เฟซภายนอก (เช่นคำขอเว็บ) พอร์ตจะถูกส่งต่อไปยังinitiator:80?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.