Score:1

iptables ไม่ส่งต่อการรับส่งข้อมูล http

ธง cn

ฉันกำลังพยายามสร้างพอร์ทัลแบบ Captive และสิ่งแรกที่ต้องทำคือเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดไปยัง IP:พอร์ตเฉพาะ

ฉันเหนื่อย:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination <my-ip>:<my-port>

ซึ่งใช้งานได้เมื่อพยายามทดสอบการเปลี่ยนเส้นทางบนอุปกรณ์เดียวกันที่ทำหน้าที่เป็นฮอตสปอต ฉันเข้าใจว่าคำขอจากผู้ใช้รายอื่นต้องผ่านห่วงโซ่ PREROUTING ดังนั้นฉันจึงทำสิ่งต่อไปนี้:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <my-ip>:<my-port>

ตอนนี้เมื่อฉันพยายามเข้าถึง IP xxx.xxx.xxx.xxx ด้วยอุปกรณ์อื่น ฉันได้รับ ERR_ADDRESS_UNREACHABLE แต่ถ้าฉันพยายามที่จะไปถึง <my-ip>ฉันถูกเปลี่ยนเส้นทางไปยังที่อื่น <my-port>. เหมือนกับว่าการส่งต่อไปยังพอร์ตอื่นใช้ได้ แต่การส่งต่อไปยัง IP อื่นไม่ได้ผล อะไรคือปัญหาที่นี่?

ฉันล้าง iptables ก่อนการทดสอบ และยอมรับนโยบายทั้งหมด

* หนึ่งในคำตอบที่ขอ iptables-save นี่คือ:

    # สร้างโดย iptables-save v1.6.1 เมื่อวันอาทิตย์ที่ 20 มิ.ย. 20:22:06 น. 2564
*ความปลอดภัย
: ยอมรับอินพุต [12750:14270713]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [3688:960149]
ให้สัญญา
# เสร็จสิ้นเมื่อ อา. 20 มิ.ย. 20:22:06 น. 2564
# สร้างโดย iptables-save v1.6.1 เมื่อวันอาทิตย์ที่ 20 มิ.ย. 20:22:06 น. 2564
*ดิบ
: ยอมรับ [0:0]
: ยอมรับเอาต์พุต [0:0]
:bw_raw_PREROUTING - [0:0]
:clat_raw_PREROUTING - [0:0]
:idletimer_raw_PREROUTING - [0:0]
:nm_mdmprxy_raw_pre - [0:0]
:qcom_htimer_PREROUTING - [0:0]
:tetherctrl_raw_PREROUTING - [0:0]
-A PREROUTING -j qcom_htimer_PREROUTING
-A PREROUTING -j clat_raw_PREROUTING
-A PREROUTING -j bw_raw_PREROUTING
-A PREROUTING -j idletimer_raw_PREROUTING
-A PREROUTING -j tetherctrl_raw_PREROUTING
-A bw_raw_PREROUTING -i ipsec+ -j ผลตอบแทน
-A bw_raw_PREROUTING -m นโยบาย --dir ใน --pol ipsec -j RETURN
-A bw_raw_PREROUTING -m bpf --object-pinned /sys/fs/bpf/prog_netd_skfilter_ingress_xtbpf
-A nm_mdmprxy_raw_pre -p tcp -m หลายพอร์ต --พอร์ต 5060 -j NOTRACK
-A nm_mdmprxy_raw_pre -p udp -m หลายพอร์ต --พอร์ต 5060 -j NOTRACK
ให้สัญญา
# เสร็จสิ้นเมื่อ อา. 20 มิ.ย. 20:22:06 น. 2564
# สร้างโดย iptables-save v1.6.1 เมื่อวันอาทิตย์ที่ 20 มิ.ย. 20:22:06 น. 2564
*แนท
: ยอมรับ [0:0]
:อินพุต ยอมรับ [0:0]
: ยอมรับเอาต์พุต [0:0]
:หลังยอมรับ [0:0]
:oem_nat_pre - [0:0]
:tetherctrl_nat_POSTROUTING - [0:0]
-A PREROUTING -j oem_nat_pre
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-ปลายทาง 192.168.43.11:8080
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-ปลายทาง 192.168.43.11:8080
-A โพสต์ -j tetherctrl_nat_POSTROUTING
ให้สัญญา
# เสร็จสิ้นเมื่อ อา. 20 มิ.ย. 20:22:06 น. 2564
# สร้างโดย iptables-save v1.6.1 เมื่อวันอาทิตย์ที่ 20 มิ.ย. 20:22:06 น. 2564
* แหลกเหลว
: ยอมรับ [0:0]
:อินพุต ยอมรับ [0:0]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [0:0]
:หลังยอมรับ [0:0]
:bw_mangle_POSTROUTING - [0:0]
:idletimer_mangle_POSTROUTING - [0:0]
:nm_mdmprxy_icmp_pkt_marker - [0:0]
:nm_mdmprxy_mark_prov_chain - [0:0]
:nm_mdmprxy_mngl_post - [0:0]
:nm_mdmprxy_mngl_pre - [0:0]
:nm_mdmprxy_mngl_pre_ex - [0:0]
:nm_mdmprxy_mngl_pre_spi - [0:0]
:nm_mdmprxy_mngl_pre_tee - [0:0]
:nm_mdmprxy_pkt_forwarder - [0:0]
:nm_mdmprxy_pkt_marker - [0:0]
:nm_mdmprxy_pkt_skmark - [0:0]
:oem_mangle_post - [0:0]
:qcom_htimer_POSTROUTING - [0:0]
:qcom_qos_filter_POSTROUTING - [0:0]
:qcom_qos_reset_POSTROUTING - [0:0]
:routectrl_mangle_INPUT - [0:0]
:tetherctrl_mangle_FORWARD - [0:0]
:wakeupctrl_mangle_INPUT - [0:0]
-อินพุต -j wakeupctrl_mangle_INPUT
-A อินพุต -j routectrl_mangle_INPUT
-A ส่งต่อ -j tetherctrl_mangle_FORWARD
-A การโพสต์ -j qcom_htimer_POSTROUTING
-A โพสต์ -j oem_mangle_post
-A โพสต์ -j bw_mangle_POSTROUTING
-A โพสต์ -j idletimer_mangle_POSTROUTING
-A การโพสต์ -j qcom_qos_reset_POSTROUTING
-A การโพสต์ -j qcom_qos_filter_POSTROUTING
-A bw_mangle_POSTROUTING -o ipsec+ -j ผลตอบแทน
-A bw_mangle_POSTROUTING -m นโยบาย --dir out --pol ipsec -j RETURN
-A bw_mangle_POSTROUTING -j MARK --set-xmark 0x0/0x100000
-A bw_mangle_POSTROUTING -m bpf --object-pinned /sys/fs/bpf/prog_netd_skfilter_egress_xtbpf
-A nm_mdmprxy_mark_prov_chain -p udp -m socket --transparent --nowildcard --restore-skmark -j nm_mdmprxy_pkt_skmark
-A nm_mdmprxy_mark_prov_chain -p tcp -m socket --transparent --nowildcard --restore-skmark -j nm_mdmprxy_pkt_skmark
-A nm_mdmprxy_mngl_post -m เครื่องหมาย --mark 0xf0002 -j MARK --set-xmark 0x0/0xffffffff
-A nm_mdmprxy_pkt_marker -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mngl_pre
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mark_prov_chain
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mngl_pre_spi
-A nm_mdmprxy_pkt_marker -j nm_mdmprxy_mngl_pre_ex
-A nm_mdmprxy_pkt_marker -p udp -m udp --dport 7275 -j MARK --set-xmark 0xf0002/0xffffffff
-A nm_mdmprxy_pkt_marker -p tcp -m tcp --dport 5060 -j MARK --set-xmark 0xf0002/0xffffffff
-A nm_mdmprxy_pkt_marker -p udp -m udp --dport 5060 -j MARK --set-xmark 0xf0002/0xffffffff
-A nm_mdmprxy_pkt_marker -m เครื่องหมาย --mark 0xf0002 -j nm_mdmprxy_pkt_forwarder
-A nm_mdmprxy_pkt_marker ! -p icmp -m เครื่องหมาย --mark 0xf0002 -j DROP
-A nm_mdmprxy_pkt_skmark -j ผลตอบแทน
-A qcom_qos_reset_POSTROUTING -o rmnet_data+ -j MARK --set-xmark 0x0/0xffffffff
-A routectrl_mangle_INPUT -i rmnet_data1 -j MARK --set-xmark 0xf0001/0xffefffff
-A routectrl_mangle_INPUT -i wlan0 -j MARK --set-xmark 0x30063/0xffefffff
-A tetherctrl_mangle_FORWARD -p tcp -m tcp --tcp-flags SYN SYN -j TCPMSS --clamp-mss-to-pmtu
ให้สัญญา
# เสร็จสิ้นเมื่อ อา. 20 มิ.ย. 20:22:06 น. 2564
# สร้างโดย iptables-save v1.6.1 เมื่อวันอาทิตย์ที่ 20 มิ.ย. 20:22:06 น. 2564
*กรอง
:อินพุต ยอมรับ [0:0]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [0:0]
ให้สัญญา
# เสร็จสิ้นเมื่อ อา. 20 มิ.ย. 20:22:06 น. 2564
bocian85 avatar
cn flag
เครื่องนี้เป็นเกตเวย์ NAT สำหรับ หรือโฮสต์ที่คุณพยายามทำงานให้ ? เพื่อให้ได้ผล ทราฟฟิกต้องผ่านเครื่องนี้ ขออภัยสำหรับการระบุที่ชัดเจนที่นี่ แนวทางปฏิบัติที่ดีคือการเพิ่มต้นทางหรือปลายทางสำหรับกฎ PREROUTING เนื่องจากวิธีนี้อาจใช้ได้ทั้งสองทิศทางซึ่งอาจไม่ใช่สิ่งที่คุณต้องการ มันจะเป็นปัญหาไหมถ้าคุณจะแสดงผลลัพธ์ของ `iptables-save` ที่นี่เพื่อตัดกฎก่อนหน้านี้บางข้อที่ทำให้กฎนี้อยู่เฉยๆ คุณสามารถระบุ "ไม่มีอะไรเกิดขึ้น" ได้หรือไม่ คุณหมายความว่ามีการหมดเวลาในเบราว์เซอร์ ?
Nikola avatar
cn flag
เป็นที่อยู่ของเครื่องที่รันเซิร์ฟเวอร์ iptables และ http iptables-save แสดงสิ่งนี้ ฉันจะเพิ่มลงในคำถาม การเปิด ในเบราว์เซอร์ให้ "ERR_ADDRESS_UNREACHABLE"
bocian85 avatar
cn flag
โฮสต์ที่คุณพยายามเชื่อมต่อสามารถเชื่อมต่อกับที่อยู่เป้าหมายได้หรือไม่ ไม่สามารถเข้าถึงโฮสต์ได้ หมายความว่า IP ไม่สามารถเข้าถึงได้หรือไม่มีอะไรรับฟังบนพอร์ตนั้น คุณอาจลองเพิ่ม `-t nat -A POSTROUTING -d : -J MASQUERADE` เพื่อขจัดปัญหาแรก
Nikola avatar
cn flag
ฉันได้เพิ่มสิ่งที่คุณบอกโดยไม่มีพอร์ต (โฮสต์/เครือข่าย : ไม่พบ). ยังไม่สามารถเข้าถึงเว็บเซิร์ฟเวอร์ที่ทำงานบนเครื่องของฉันโดยไปที่ IP แบบสุ่ม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา