OpenVPN แจ้งว่าเริ่มต้นระบบเสร็จแล้ว: ทำไมพรอมป์ต์ไม่กลับมา
บรรทัดสุดท้ายของล็อกคือจุดสิ้นสุดของการเริ่มต้น ไม่ใช่จุดสิ้นสุดของโปรแกรม เลือกระหว่างการดีบักที่เบื้องหน้า ยูนิตบริการ และโหมดดีมอน
ไม่มีอะไรค้างเมื่อเทอร์มินัลเงียบลงหลังบรรทัดสุดท้ายของล็อก นั่นคือรูปแบบที่คาดไว้สำหรับไคลเอนต์ที่ทำงานเบื้องหน้า มันเริ่มต้นเสร็จแล้วและตอนนี้ก็อยู่ตรงนั้นเพื่อขนส่งทราฟฟิก พรอมป์ต์ของเชลล์ไม่ใช่สัญญาณความสำเร็จอย่างที่ดูเหมือน
มองข้อความนี้เป็นเส้นแบ่งระหว่างการเริ่มต้นกับสภาวะคงที่ เพราะนั่นคือสิ่งที่มันระบุจริง ๆ
ข้อความระบุจุดสิ้นสุดของการเริ่มต้น ไม่ใช่จุดสิ้นสุดของโปรเซส
OpenVPN พิมพ์บรรทัดนั้นหลังจากเปิดอุปกรณ์ ตั้งค่าอินเทอร์เฟซ ติดตั้งเส้นทาง และเสร็จสิ้นการแลกเปลี่ยน TLS กับคู่ตรงข้าม จากนั้นโปรเซสยังคงทำงานต่อ เพราะหน้าที่ของมันคือเปิดอุโมงค์ไว้และส่งต่อแพ็กเก็ต โปรแกรมที่ทำงานเบื้องหน้าจะไม่กลับมาที่พรอมป์ต์ขณะยังทำหน้าที่นั้นอยู่ การไม่มีเอาต์พุตหลังจากนั้นเป็นเรื่องปกติ เพราะไคลเอนต์พูดเฉพาะเมื่อมีอะไรเปลี่ยนแปลง
ถ้าบรรทัดนั้นปรากฏขึ้นแล้วการเชื่อมต่อตายในภายหลัง นั่นเป็นอีกเหตุการณ์หนึ่ง และ ล็อกจะบอกเรื่องนี้ย้อนหลัง
Ctrl+C คือการตัดสินใจ ไม่ใช่การซ่อม
การกด Ctrl+C ส่งสัญญาณขัดจังหวะ ซึ่งไคลเอนต์ถือเป็นคำขอปิดระบบ พรอมป์ต์กลับมา อุโมงค์หายไป และเซสชันใดที่ใช้งานอยู่ก็จบลง สิ่งนี้ดูเหมือนความคืบหน้าแต่จริง ๆ แล้วตรงกันข้าม ถ้าเป้าหมายคือการเชื่อมต่อถาวร คำตอบคือย้ายโปรเซสไปที่ที่มันทำงานต่อได้โดยไม่ต้องพึ่งเทอร์มินัลของคุณ ไม่ใช่การขัดจังหวะมัน
การปล่อยให้อยู่เบื้องหน้าคือทางเลือกที่ถูกต้องระหว่างดีบัก เพราะข้อผิดพลาดที่เกิดภายหลังยังมองเห็นได้ในหน้าต่างเดิม หนึ่งนาทีที่เงียบไม่พิสูจน์อะไรทั้งสองทาง ทดสอบทรัพยากรผ่านอุโมงค์แทนการเฝ้าดูเอาต์พุต
สิ่งที่ข้อความนี้ไม่ได้พิสูจน์
การเสร็จสิ้นเป็นคำกล่าวภายในเกี่ยวกับการตั้งค่าของไคลเอนต์เอง มันไม่ได้บอกว่าอีกฝั่งตอบสนอง ว่าเส้นทางที่ติดตั้งตรงกับสิ่งที่คุณต้องการ หรือว่าการแปลงชื่อผ่านอุโมงค์ทำงาน โปรไฟล์แบบแยกอุโมงค์อาจเริ่มต้นสมบูรณ์แต่แชร์ของบริษัทกลับเข้าไม่ถึง เพราะเส้นทางหรือนโยบาย DNS ไม่เคยครอบคลุมมัน อินสแตนซ์ฝั่งเซิร์ฟเวอร์ก็พิมพ์บรรทัดคล้ายกันเมื่อพร้อมรับไคลเอนต์ ซึ่งไม่เหมือนกับการที่มีไคลเอนต์เชื่อมต่ออยู่
«เซิร์ฟเวอร์เริ่มทำงาน» กับ «แล็ปท็อปเปิดแชร์ได้» เป็นการสังเกตจากสองที่ที่ต่างกัน และการปนกันจะทำให้คุณไปดีบักโฮสต์ผิดตัว
การทำงานโดยไม่มีเทอร์มินัล
สำหรับการติดตั้งแบบถาวร ให้ใช้รูปแบบบริการที่แพลตฟอร์มรองรับ บนโฮสต์ systemd นั่นคืออินสแตนซ์ openvpn-client@office ที่มีโปรไฟล์อยู่ใน /etc/openvpn/client เริ่มทำงานและเปิดใช้งานเพื่อให้อยู่รอดหลังรีบูต Community OpenVPN ยังมี --daemon พร้อมกับ --log หรือ --log-append ซึ่งจะแยกโปรเซสออกและส่งเอาต์พุตไปยังไฟล์ ทั้งสองวิธีเปลี่ยนวิธีการทำงานของโปรเซส ไม่มีวิธีใดแก้เส้นทางหรือทำให้แอปพลิเคชันระยะไกลมีสุขภาพดี
ตรวจสอบว่าคุณไม่ได้เริ่มอินสแตนซ์ที่สองข้าง ๆ ตัวที่บริการจัดการอยู่แล้ว ไคลเอนต์สองตัวที่อ้างโปรไฟล์เดียวกันจะสร้างล็อกที่สับสนและอุโมงค์หนึ่งเส้นที่คุณไม่ได้ตั้งใจ
เลือกวิธีที่ตรงกับงาน
เบื้องหน้าสำหรับการวินิจฉัย บริการสำหรับทุกสิ่งที่ต้องอยู่ยาวกว่าเซสชัน โหมดดีมอนเมื่อไม่มีตัวจัดการบริการให้พึ่งพา สามแบบนี้ครอบคลุมกรณีทั่วไป และแต่ละแบบมีเหตุผลชัดเจนในการมีอยู่ การเลือกแบบใดแบบหนึ่งโดยไม่ตั้งใจคือสิ่งที่ทำให้เกิดรายงานว่า «ใช้ได้จนกว่าจะปิดหน้าต่าง»
เมื่ออุโมงค์ควรอยู่ต่อ ให้ยืนยันภายหลังว่ามันกลับมาหลังรีบูตและล็อกของมันไปถึงที่ที่คุณจะดู บรรทัดการเริ่มต้นก็ปรากฏในล็อกเหล่านั้นด้วย และเมื่อถึงตอนนั้นก็ไม่มีใครต้องเฝ้าเทอร์มินัลเพื่อมันอีก