ฉันกำลังพยายามตั้งค่า IP ไปข้างหน้า ไม่สามารถจัดการเพื่อให้ทำงานได้
เป้าหมายคือการรับการเชื่อมต่อบนอินเทอร์เฟซ 1 (IP บนอินเทอร์เฟซนี้คือ 192.168.101.3) พอร์ต 4443 และส่งผ่านอินเทอร์เฟซ 2 ไปยัง IP 192.168.4.5 (IP ปลายทาง) พอร์ต 4443
- ฉันเปิดใช้งาน "net.ipv4.ip_forward = 1" ใน /etc/sysctl.conf
- ตั้งค่า DEFAULT_FORWARD_POLICY="ACCEPT" ใน /etc/default/ufw
- เพิ่มไปที่ /etc/ufw/before.rules (จากบทช่วยสอนต่างๆ):
: ยอมรับ [0:0]
-A PREROUTING -p tcp --dport 4443 -j DNAT --to-ปลายทาง 192.168.4.5:4443
-A POSTROUTING -o interface2 -j MASQUERADE
ให้สัญญา
ฉันยังไม่สามารถเชื่อมต่อกับ "nc 192.168.101.3 4443"
- คุณเห็นอะไรผิดปกติหรือไม่?
- ufw รู้ได้อย่างไรว่าจะส่งต่ออินเทอร์เฟซใดหากไม่สามารถระบุ -o ใน DNAT ได้ มันจะไม่พยายามส่งต่อไปยัง 192.168.4.5:4443 บน interface1 หรือไม่
แก้ไข:
192.168.101.1(คอมพิวเตอร์ 1) -> (192.168.101.3, 192.168.4.1) (คอมพิวเตอร์ 2) -> 192.168.4.5 (คอมพิวเตอร์ 3)
สิ่งที่ดีที่สุดที่ฉันจะได้รับในตอนนี้คือสิ่งนี้ในบันทึก
[ 1177.553749] [UFW AUDIT] IN= OUT=enp6s0 SRC=192.168.101.3 DST=192.168.101.1 LEN=88 TOS=0x00 PREC=0xC0 TTL=64 ID=62781 PROTO=ICMP TYPE=3 CODE=3 [SRC=192.168 .101.1 DST=192.168.4.5 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=13975 DF PROTO=TCP SPT=60720 DPT=4445 WINDOW=64240 RES=0x00 SYN URGP=0 ]
ถ้าฉันเข้าใจถูกต้อง พอร์ต 4443 บน 192.168.4.5 ไม่สามารถเข้าถึงได้ ดังนั้น 192.168.101.3 จึงส่งแพ็คเก็ตข้อผิดพลาด ICMP กลับไปที่ 192.168.101.1 (เครื่องที่ฉันเชื่อมต่อด้วย nc)
ซึ่งแปลกเพราะถ้าฉันพยายามเชื่อมต่อกับ nc โดยตรงจาก 192.168.101.3 มันก็ใช้ได้ดี ...