journalctl สำหรับบันทึก VPN: หน่วยใดเป็นเจ้าของการเชื่อมต่อ
OpenVPN, wg-quick และ NetworkManager เขียนไปยังหน่วยที่ต่างกัน เลือกเจ้าของ จำกัดช่วงเวลา แล้วอ่านขั้นตอนแรกที่ล้มเหลวตามลำดับ
เริ่มจากหน่วย systemd ที่เป็นเจ้าของการเชื่อมต่อ VPN จริง ไม่ใช่คำสั่งบันทึกที่คุณจำได้ บริการ OpenVPN โดยตรง หน่วย wg-quick และโปรไฟล์ NetworkManager วางข้อความที่มีประโยชน์ไว้ในหน่วยที่ต่างกัน และการสอบถามกับหน่วยที่ผิดให้ผลลัพธ์ว่างเปล่าซึ่งดูเหมือนความเงียบ เปรียบเทียบเจ้าของทั่วไปสามแบบ จำกัดช่วงเวลา แล้วอ่านขั้นตอนตามลำดับ
เปรียบเทียบเจ้าของทั่วไปสามแบบ
บริการไคลเอนต์ OpenVPN มักเป็นหน่วยอินสแตนซ์ที่ตั้งชื่อตามโปรไฟล์ เช่น [email protected] ข้อความของหน่วยนี้รวมถึงเส้นทางการกำหนดค่า การแยกวิเคราะห์ตัวเลือก การจับมือ TLS และการติดตั้งเส้นทางที่ไคลเอนต์ทำ
หน่วย wg-quick เงียบกว่าโดยการออกแบบ การกำหนดค่าอินเทอร์เฟซเกิดขึ้นตอนเริ่มต้น เคอร์เนลจัดการการจับมือ และการเปลี่ยนคีย์ตามปกติไม่ถูกบันทึกโดยค่าเริ่มต้น ดังนั้น wg show จึงมักให้ข้อมูลมากกว่าบันทึก ความแตกต่างนี้สำคัญเมื่อคุณเปรียบเทียบโปรโตคอลที่บันทึกการเจรจากับโปรโตคอลที่ไม่บันทึก
NetworkManager เป็นเจ้าของโปรไฟล์ที่มันสร้าง และข้อความของมันอยู่ภายใต้ NetworkManager.service แม้ว่าปลั๊กอินพื้นฐานจะเป็นตัวช่วย VPN สอบถามทั้งตัวจัดการและหน่วยช่วยเหลือเมื่อโปรไฟล์ถูกจัดการในลักษณะนั้น
จำกัดการสอบถามให้เหลือหนึ่งหน่วยและหนึ่งช่วงเวลา
สอบถามหน่วยที่คุณระบุ และจำกัดเวลาไว้ที่ความพยายามที่คุณกำลังตรวจสอบ หนึ่งวันมักเพียงพอ และช่วงเวลาที่สั้นกว่าจะดีกว่าเมื่อเครื่องเชื่อมต่อใหม่บ่อย
journalctl -u [email protected] --since today
systemctl list-units --type=service | grep -i vpn
systemctl cat [email protected]ตรวจสอบชื่อที่ติดตั้งก่อนที่จะเชื่อถือการสอบถาม การบรรจุของดิสทริบิวชันเปลี่ยนชื่อหน่วย และโปรไฟล์ที่มีอยู่เป็นไฟล์อาจไม่เคยถูกเปิดใช้งานเป็นบริการ หากไม่มีหน่วย บันทึกที่ว่างเปล่ากำลังบอกคุณเกี่ยวกับการติดตั้งใช้งาน ไม่ใช่เกี่ยวกับอุโมงค์
อ่านขั้นตอนแรกที่ล้มเหลว
อ่านเหตุการณ์ตามลำดับที่เกิดขึ้น: การค้นหาปลายทาง การขนส่ง ตัวตน การพิสูจน์ตัวตน การติดตั้งเส้นทาง และความล้มเหลวในภายหลังของแอปพลิเคชัน ความล้มเหลวเฉพาะเจาะจงครั้งแรกคือสิ่งที่ควรค่าแก่การตรวจสอบ เพราะทุกอย่างหลังจากนั้นเป็นผลสืบเนื่อง
บริการที่เริ่มต้นสำเร็จไม่ได้พิสูจน์ว่าทรัพยากรที่จำเป็นทุกอย่างเข้าถึงได้ วงจรการเชื่อมต่อใหม่สามารถสร้างการเจรจาแยกกันหลายครั้ง ดังนั้นเก็บชื่อโปรไฟล์และเวลาที่พยายามไว้กับเหตุการณ์ และอ่านความพยายามเดียวแทนที่จะเป็นสตรีมที่รวมกัน ความพยายามเดียวคือลำดับที่มีสาเหตุ ขณะที่สตรีมที่รวมกันคือกำแพงของบรรทัดซ้ำ เขียนข้อผิดพลาดแรกลงในตั๋วก่อนที่จะอ่านต่อ
อย่าผสมบริการที่ล้มเหลวกับไคลเอนต์ที่เรียกด้วยมือ
หากคุณเริ่มไคลเอนต์ด้วยมือหลังจากบริการล้มเหลว เอาต์พุตของมันไปที่อื่นและพฤติกรรมอาจแตกต่างออกไป บันทึกผลลัพธ์ใหม่จากเจ้าของเดียวกันและคำขอเดียวกันหลังการแก้ไขที่รองรับ เพื่อให้การเปรียบเทียบแสดงสิ่งที่เปลี่ยนแปลงแทนที่จะผสมสองโปรแกรมที่ต่างกัน
อย่าแก้ไขการประทับเวลาเดิมเพื่อให้ตรงกับโฮสต์อื่น บันทึกเขตเวลาและความแตกต่างของนาฬิกาที่ทราบแยกต่างหาก เพราะไทม์ไลน์ที่คุณแก้ไขไม่ใช่หลักฐานอีกต่อไป
แบ่งปันข้อความตัดตอน ไม่ใช่การส่งออก
รายการบันทึกอาจมีชื่อผู้ใช้ ที่อยู่ปลายทาง โทโพโลยีส่วนตัว และข้อมูลสภาพแวดล้อมสคริปต์ ตรวจสอบข้อความตัดตอนจริงและปิดข้อมูลที่ละเอียดอ่อนแทนการเผยแพร่การส่งออกทั้งหมดโดยไม่มีข้อจำกัด อ้างอิงบรรทัดที่พิสูจน์ความล้มเหลวและสรุปส่วนที่เหลือ ข้อความตัดตอนสั้นที่ตรวจสอบแล้วใช้งานได้ง่ายกว่าไฟล์ที่ไม่มีใครอ่าน
ส่งช่วงเวลาที่แคบ ชื่อหน่วย และขั้นตอนแรกที่ล้มเหลว และบอกสิ่งที่คุณตัดออกไปแล้ว คู่มือ systemd journalctl อธิบายตัวเลือกและตัวเลือกเอาต์พุต หากคุณต้องการรูปแบบที่เวอร์ชันของดิสทริบิวชันรองรับ