OpenVPN Access Server: รีสตาร์ทดีมอนหรือใช้การตั้งค่า
systemctl restart openvpnas รีสตาร์ทดีมอน ส่วน sacli start เปิดบริการภายใน ให้ทำตามเอกสารของการตั้งค่าแล้วตรวจสอบให้เกินกว่า active
มีคำสั่งสองคำสั่งที่ถูกวางสำหรับสิ่งที่ดูเหมือนงานเดียวกันบน OpenVPN Access Server และทั้งสองทำสิ่งที่ต่างกัน systemctl restart openvpnas หยุดและเริ่มผลิตภัณฑ์ทั้งหมดใหม่ sacli start เปิดบริการภายในที่อ่านการกำหนดค่าที่คุณเพิ่งเปลี่ยน การเลือกระหว่างสองคำสั่งไม่ใช่เรื่องรสนิยม: ขึ้นอยู่กับว่าเอกสารของการตั้งค่าเองบอกว่าอะไร เซสชันของคุณวิ่งผ่านเซิร์ฟเวอร์ที่คุณกำลังจะรีสตาร์ทหรือไม่ และคุณกำลังดูผลิตภัณฑ์ที่ถูกต้องหรือเปล่า
สองชั้น ดีมอนเดียว
Access Server ทำงานเป็นยูนิต systemd เดียวชื่อ openvpnas และดีมอนนั้นดูแลบริการภายในที่อยู่เบื้องหลังอินเทอร์เฟซเว็บและตัวรับฟัง VPN sacli คืออินเทอร์เฟซบรรทัดคำสั่งของระบบติดตั้งเดียวกัน ที่ /usr/local/openvpn_as/scripts/sacli และสามารถเริ่ม หยุด และสอบถามองค์ประกอบภายในเหล่านั้นได้โดยไม่ต้องเปลี่ยนยูนิต
นี่คือเหตุผลที่มีทั้งสองคำสั่ง การรีสตาร์ทดีมอนจะรันทุกอย่างใหม่ รวมถึงโปรเซสที่ตัดอุโมงค์ของไคลเอนต์ sacli start ขอให้ดีมอนที่ทำงานอยู่แล้วยกองค์ประกอบของตนขึ้นมาเพื่ออ่านการกำหนดค่าใหม่ และนั่นคือสิ่งที่การเปลี่ยนคุณสมบัติส่วนใหญ่ต้องการจริง ๆ
เงื่อนไขแรก: เอกสารของการตั้งค่าบอกอะไร
อ่านหน้าของการตั้งค่าที่คุณเปลี่ยน ไม่ใช่ของการตั้งค่าที่คุณเปลี่ยนเมื่อเดือนที่แล้ว หลังคุณสมบัติที่เขียนผ่าน ConfigPut มักตามด้วย sacli start และคู่นั้นคือขั้นตอนการใช้งานที่เขียนไว้ในเอกสาร การเปลี่ยนพฤติกรรมระดับตัวรับฟัง หรืออะไรก็ตามที่หน้าเว็บอธิบายว่าต้องรีสตาร์ทบริการ คือกลุ่มที่การรีสตาร์ทยูนิตถูกต้อง
สองคำสั่งนี้ใช้แทนกันไม่ได้ ดังนั้นรูปแบบความผิดพลาดเมื่อเดาจึงไม่สมมาตร การใช้ sacli start เมื่อจำเป็นต้องรีสตาร์ทเต็มรูปแบบจะทิ้งโปรเซสเก่าที่ยังให้บริการการกำหนดค่าเดิม ซึ่งดูเหมือนการตั้งค่าถูกเพิกเฉย การรีสตาร์ทเต็มรูปแบบเมื่อ sacli start ก็เพียงพอจะตัดไคลเอนต์ที่เชื่อมต่ออยู่ทั้งหมดโดยไม่มีเหตุ
เงื่อนไขที่สอง: เซสชันของคุณอยู่ในอุโมงค์หรือไม่
หากคุณดูแล Access Server ผ่าน VPN ที่มันให้บริการ การรีสตาร์ทจะตัดการเชื่อมต่อที่พา shell ของคุณ คำสั่งอาจเสร็จหลังเซสชันของคุณตายไปแล้ว คุณจึงต้องเดาว่ามันได้ผลหรือไม่ ด้วยเหตุผลเดียวกัน sacli start ก็อาจขัดจังหวะเซสชันชั่วครู่เมื่อองค์ประกอบที่ถูกรีสตาร์ทจัดการทราฟฟิกของคุณ
ให้เปิดเส้นทางนอกแบนด์ไว้ก่อนคำสั่งใด ๆ คอนโซลผู้ให้บริการ คอนโซลไฮเปอร์ไวเซอร์ หรือเซสชันอนุกรม เงื่อนไขนี้กำหนดว่าคุณจะรันคำสั่งเมื่อใด ไม่ใช่ว่าคำสั่งใด และเป็นสิ่งที่เปลี่ยนการเปลี่ยนแปลงสองนาทีให้เป็นรายงานเหตุขัดข้อง
เงื่อนไขที่สาม: นี่คือผลิตภัณฑ์ที่คุณคิดหรือไม่
Access Server ไม่ใช่ Community OpenVPN การติดตั้งชุมชนรันยูนิตอย่าง openvpn@server หรือ openvpn-client@profile โดยมีการกำหนดค่าใน /etc/openvpn และไม่มี sacli ที่นั่น การรีสตาร์ททุกยูนิตที่มี openvpn ในชื่อบนโฮสต์ที่ใช้ร่วมกันคือวิธีที่อุโมงค์ที่ไม่เกี่ยวข้องล้มพร้อมกัน
ระบุก่อนจะแตะอะไร: systemctl status openvpnas --no-pager ตอบว่า Access Server คือสิ่งที่กำลังทำงานหรือไม่ sacli status แสดงองค์ประกอบภายในของมัน และ systemctl list-units --type=service แสดงยูนิตที่ชื่อมี openvpn หากคำสั่งสุดท้ายแสดงยูนิตที่ชื่อเป็นโปรไฟล์ คุณอยู่บนผลิตภัณฑ์ชุมชนและส่วนที่เหลือที่นี่ไม่ใช้กับคุณ
ใช้งานแล้วตรวจสอบให้เกินกว่า active
ยูนิตที่รายงาน active มีโปรเซสทำงานอยู่ ซึ่งไม่เหมือนกับเส้นทางการพิสูจน์ตัวตนที่ใช้งานได้ หลังขั้นตอนการใช้งาน ให้ตรวจ sacli status สำหรับองค์ประกอบที่คุณคาดว่าจะถูกรีสตาร์ท ยืนยันว่าค่าถูกเก็บด้วย sacli ConfigQuery แล้วรันการเข้าสู่ระบบของไคลเอนต์หนึ่งครั้งแบบจำกัดด้วยบัญชีทดสอบ
จบด้วยสิ่งระดับแอปพลิเคชัน: เข้าถึงทรัพยากรส่วนตัวผ่านอุโมงค์ ไม่ใช่แค่ ping ไปยังที่อยู่สาธารณะของเซิร์ฟเวอร์ การจับมือที่สำเร็จในขณะที่เส้นทางที่ส่งไปหรือการตั้งค่า DNS ผิดจะผ่านการตรวจสอบบริการทั้งหมดและยังทำให้คนที่รายงานปัญหาล้มเหลว
บทเรียนของผู้ให้บริการเรื่องการจัดการบริการ คือเอกสารอ้างอิงว่าการดำเนินการใดเป็นของ sacli และควรเปิดดูก่อนตัดสินใจว่าการรีสตาร์ทเป็นตัวเลือกที่ปลอดภัย
การตัดสินใจในรอบเดียว
ไล่ลงตามสี่บรรทัดนี้และหยุดที่บรรทัดแรกที่ตรง:
- หน้าของการตั้งค่าระบุ sacli start หรือคุณเพิ่งรัน ConfigPut: ใช้ sacli start
- หน้าต้องการการรีสตาร์ท หรือการเปลี่ยนแปลงแตะตัวรับฟังไม่ใช่คุณสมบัติ: ใช้ systemctl restart openvpnas
- shell ของคุณเข้ามาทางเซิร์ฟเวอร์นี้: จัดการเข้าถึงคอนโซลก่อน แล้วรันคำสั่งที่สองบรรทัดข้างบนเลือก
- การตรวจสอบ: sacli status, ConfigQuery สำหรับค่า, การเข้าสู่ระบบหนึ่งครั้ง, ทรัพยากรส่วนตัวหนึ่งอย่าง สถานะบริการอย่างเดียวไม่ใช่เส้นชัย
สองในบรรทัดเหล่านั้นเป็นการตรวจสอบและสองคือการกระทำ และนั่นคือความหมายของลำดับ หากคุณตอบคำถามเรื่องผลิตภัณฑ์ไม่ได้ ให้หยุด: คำสั่งที่คุณกำลังจะรันเป็นของระบบติดตั้งอื่น และอุโมงค์ที่คุณจะล้มลงจะไม่ใช่สิ่งที่คุณตั้งใจ