ฉันกำลังพยายามสร้างพอร์ทัลแบบ 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