ฉันกำลังพยายามแก้ปัญหาว่าทำไมฉันจึงเมานต์การแชร์ NFS บนเซิร์ฟเวอร์จากไคลเอนต์ linux ไม่ได้ หลังจากทดสอบเซิร์ฟเวอร์ NFS หลายครั้งและสามารถติดตั้งในเครื่องเดียวกันได้ ฉันเริ่มพยายามดูว่าเป็นปัญหาเกี่ยวกับเครือข่ายหรือไม่ และสิ่งที่ฉันเห็นทำให้ฉันงุนงงเล็กน้อย ไม่มีไฟร์วอลล์ทำงานบนเซิร์ฟเวอร์ และฉันมีบริการอื่นๆ มากมาย (HTTP/S, DLNA, Mosquitto...) ทำงานอย่างไม่มีที่ติทั้งจากเครือข่ายภายในของฉันและจากอินเทอร์เน็ตในเซิร์ฟเวอร์เดียวกัน ฉันสร้าง tcptraceroute จากไคลเอนต์ไปยังเซิร์ฟเวอร์ที่พอร์ต 2049 และเซิร์ฟเวอร์ตอบอย่างถูกต้องฉันได้ลองใช้ telnet บริสุทธิ์จากไคลเอนต์ไปยังเซิร์ฟเวอร์บนพอร์ต 2049 ในขณะที่ฟังด้วย tshark ที่ปลายทั้งสองด้าน และฉันเห็นลำดับ TCP SYN, SYN,ACK ที่เหมาะสมถูกสร้างขึ้นที่ปลายทั้งสองด้าน แต่เมื่อฉันพยายามเมานต์การแชร์ NFS จาก ลูกค้า ฉันเห็น TCP SYN ออกมาที่เครื่องไคลเอ็นต์และ ไม่มีอะไร เข้ามาใน tshark บนเครื่องเซิร์ฟเวอร์ มันเหมือนกับแพ็กเก็ต TCP SYN ไม่เคยมาถึงเซิร์ฟเวอร์! นี่คือสิ่งที่ฉันเห็นในไคลเอนต์ (.3) หน้าต่าง tshark:
1 0.000000000 192.168.1.3 â 192.168.1.2 TCP 74 758 â 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2121012438 TSecr=0 WS=128
2 1.007908102 192.168.1.3 â 192.168.1.2 TCP 74 [TCP Retransmission] 758 â 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2121013446 TSecr=0 WS=12
3 3.024014290 192.168.1.3 â 192.168.1.2 TCP 74 [TCP Retransmission] 758 â 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2121015462 TSecr=0 WS=1260
และไม่มีอะไรแสดงบนเซิร์ฟเวอร์ (.2) ในขณะที่ tcptraceroute บริสุทธิ์บนไคลเอนต์แสดง:
tcptraceroute 192.168.1.2 2049
อุปกรณ์ที่เลือก enx9cebe8fc1358 ที่อยู่ 192.168.1.3 พอร์ต 47199 สำหรับแพ็กเก็ตขาออก
ติดตามเส้นทางไปยัง 192.168.1.2 บนพอร์ต TCP 2049 (nfs), สูงสุด 30 hops
1 192.168.1.2 [เปิด] 0.501 ms 0.441 ms 0.493 ms
เอาต์พุต Tshark:
1 0.000000000 192.168.1.3 â 192.168.1.2 TCP 54 57737 â 2049 [SYN] Seq=0 Win=0 Len=0
2 0.000455085 192.168.1.2 â 192.168.1.3 TCP 60 2049 â 57737 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460
3 0.000495873 192.168.1.3 â 192.168.1.2 TCP 54 57737 â 2049 [RST] Seq=1 Win=0 Len=0
4 0.006264763 192.168.1.3 â 192.168.1.2 TCP 54 [TCP Retransmission] 57737 â 2049 [SYN] Seq=0 Win=0 Len=0
5 0.006690795 192.168.1.2 â 192.168.1.3 TCP 60 [ไม่ได้บันทึกส่วนก่อนหน้าของ TCP] [ใช้หมายเลขพอร์ต TCP ซ้ำ] 2049 â 57737 [SYN, ACK] Seq=97837 Ack=1 Win=64240 Len=0 MSS= 1460
6 0.006737449 192.168.1.3 â 192.168.1.2 TCP 54 57737 â 2049 [RST] Seq=1 Win=0 Len=0
7 0.022031295 192.168.1.3 â 192.168.1.2 TCP 54 [TCP Retransmission] 57737 â 2049 [SYN] Seq=0 Win=0 Len=0
8 0.022406482 192.168.1.2 â 192.168.1.3 TCP 60 [ไม่ได้บันทึกส่วน TCP ก่อนหน้า] [ใช้หมายเลขพอร์ต TCP ซ้ำ] 2049 â 57737 [SYN, ACK] Seq=343671 Ack=1 Win=64240 Len=0 MSS= 1460
9 0.022447549 192.168.1.3 â 192.168.1.2 TCP 54 57737 â 2049 [RST] Seq=1 Win=0 Len=0
ฉันไม่มีความคิดที่นี่ ดังนั้นข้อเสนอแนะใด ๆ ก็ยินดี ฉันไม่คิดว่าเป็นเซิร์ฟเวอร์ NFS เนื่องจาก tshark ไม่แสดงแพ็กเก็ตใด ๆ ที่มาถึงเซิร์ฟเวอร์บนพอร์ต 2049 ที่ฉันเห็นบนอินเทอร์เฟซใด ๆ ... เป็นไปได้ไหมว่าเคอร์เนลของเซิร์ฟเวอร์จะละทิ้งแพ็กเก็ตก่อนที่จะแสดงใน tshark สำหรับ เหตุผลบางอย่าง? เซิร์ฟเวอร์เคอร์เนล NFS ละทิ้งแพ็กเก็ตก่อนที่จะอนุญาตให้ tshark ดูหรือไม่ เป็นไปได้ไหม?
ขอบคุณสำหรับความคิดที่เป็นไปได้ทั้งหมด!
/นาโช่