การรีบูตเครื่องจะทำให้เครื่องกลับมาอยู่บนเครือข่ายโดยที่อุโมงค์ยังล่มอยู่เหมือนเดิม ไคลเอนต์ของ SoftEther เก็บสถานะสองอย่างที่คนส่วนใหญ่คิดว่าเป็นอย่างเดียว คือ บริการทำงานอยู่หรือไม่ และบัญชีที่บันทึกไว้ได้รับอนุญาตให้ขึ้นมาพร้อมกับบริการหรือไม่ ทั้งสองอย่างต้องเป็นจริง และอย่างที่สองเป็นธงรายบัญชีไม่ใช่การตั้งค่าตอนบูต ให้ทำการตรวจสอบสี่ข้อด้านล่างตามลำดับและหยุดที่ความล้มเหลวแรก

ยืนยันว่าบัญชีถูกทำเครื่องหมายให้เริ่มอัตโนมัติ

ธงนี้อยู่ในระเบียนบัญชีภายในคอนฟิกของไคลเอนต์เอง ดังนั้นการติดตั้งไคลเอนต์ใหม่หรือการกู้คืนไดเรกทอรีว่างจะลบมันทิ้ง เปิดคอนโซลการจัดการและดูรายการบัญชีก่อนจะเปลี่ยนอย่างอื่น

cd /opt/softether/vpnclient
./vpncmd

เลือก 2 สำหรับการจัดการไคลเอนต์ VPN แล้วยอมรับเซิร์ฟเวอร์ภายในเครื่องด้วยการกด Enter

AccountStartupSet
office-hub
exit

AccountStartupSet บันทึกบัญชีว่าเป็นบัญชีที่ต้องถูกนำขึ้นมาเมื่อบริการไคลเอนต์เริ่มทำงาน คำสั่งนี้ไม่ได้เริ่มบริการและไม่ได้สร้างบัญชีใหม่ และไม่พิมพ์อะไรที่เป็นประโยชน์เมื่อชื่อผิด อ่านรายการบัญชีกลับมาหลังจากรันคำสั่ง เพราะการพิมพ์ผิดนั้นเงียบและดูเหมือนธงที่ไม่ได้ผลอย่างยิ่ง

ยืนยันว่าบริการเริ่มทำงาน และเริ่มเร็วพอ

บน Linux ไคลเอนต์ทำงานเป็นดีมอนจากไดเรกทอรีของตัวเอง และต้องทำงานอยู่ก่อนที่ขั้นตอนบูตใด ๆ จะพยายามใช้บัญชี ฮุกสั้น ๆ ที่เปลี่ยนไดเรกทอรีและเริ่มมันก็เพียงพอบนระบบที่ยังรัน rc.local

cd /opt/softether/vpnclient
./vpnclient start

ที่ที่ไม่มี rc.local แล้ว ให้เขียนยูนิต systemd ที่ระบุ WorkingDirectory อย่างชัดเจนและมีนโยบายรีสตาร์ต ไบนารีจะแก้ไขคอนฟิกโดยอ้างอิงตำแหน่งที่มันถูกเริ่ม ดังนั้นยูนิตที่ไม่มีค่านี้อาจเริ่มได้สำเร็จและอ่านอะไรไม่ได้เลย ลำดับคืออีกครึ่งหนึ่งของปัญหา การพยายามเชื่อมต่อที่ทำงานก่อนดีมอนจะเริ่มฟังจะล้มเหลวเป็นครั้งคราว ซึ่งวินิจฉัยได้ยากกว่าความล้มเหลวที่สม่ำเสมอมาก นโยบายรีสตาร์ตครอบคลุมกรณีที่สาม คือดีมอนตายเงียบ ๆ หลายชั่วโมงให้หลัง

ตรวจสอบรายการโปรเซสแทนที่จะเชื่อไฟล์ pid ที่บูตครั้งก่อนทิ้งไว้

ยืนยันว่าอะแดปเตอร์ได้รับที่อยู่

เมื่อบัญชีเชื่อมต่อ ไคลเอนต์จะแสดงอะแดปเตอร์เสมือน และอะแดปเตอร์ยังต้องมีที่อยู่ ฮับที่รัน SecureNAT มักจะตอบ DHCP ขณะที่ ฮับที่บริดจ์เข้ากับ LAN จริงจะคาดหวังให้เซิร์ฟเวอร์ของ LAN นั้นเป็นผู้ตอบแทน

ip -brief address
dhclient vpn_vpn1

นำชื่ออินเทอร์เฟซจากรายการ เพราะตัวเลขในตัวอย่างไม่ใช่ค่าคงที่ หากที่อยู่ต้องเป็นแบบคงที่ ให้ใส่ไว้ในคอนฟิกเครือข่ายของดิสทริบิวชันสำหรับอินเทอร์เฟซนั้น เพื่อให้ถูกนำไปใช้อีกครั้งหลังเหตุการณ์เชื่อมต่อ ไม่ใช่เฉพาะตอนบูต สคริปต์แบบครั้งเดียวจะทำให้อะแดปเตอร์ไม่มีที่อยู่ในครั้งแรกที่อุโมงค์เชื่อมต่อใหม่ระหว่างวัน ความล้มเหลวนั้นดูเหมือนอุโมงค์ที่ตายแล้วแม้บัญชีจะปกติดี

อะแดปเตอร์ที่ไม่มีที่อยู่คือความล้มเหลวที่เงียบที่สุดในรายการ เพราะบัญชียังรายงานว่าเชื่อมต่ออยู่

ยืนยันว่าเส้นทางชี้ไปยังที่ที่คุณคิด

ทราฟฟิกยังล้มเหลวได้แม้ลิงก์จะสมบูรณ์และที่อยู่ถูกต้อง ถามเคอร์เนลว่าจะใช้อินเทอร์เฟซใดสำหรับปลายทางภายในซับเน็ตของฮับ แล้วนำคำตอบนั้นมาเทียบกับอุโมงค์

ip route get 10.10.20.15

ซับเน็ตภายในที่ทับซ้อนกับช่วงของฮับจะเป็นฝ่ายชนะ เพราะเส้นทางของมันเจาะจงกว่าและติดตั้งไว้แล้ว

นั่นเป็นการตัดสินใจเรื่องการกำหนดเลข ไม่ใช่บั๊กของไคลเอนต์ และการรีสตาร์ตบริการจะไม่เปลี่ยนมัน คอนฟิกของตัวแก้ชื่อคืออีกครึ่งหนึ่ง ที่อยู่ที่ไม่มีเซิร์ฟเวอร์ DNS ที่ใช้งานได้จะสร้างอุโมงค์ที่ผ่านการตรวจลิงก์ทุกข้อแต่ยังเปิดชื่อไม่ได้

เขียนการตรวจสอบทั้งสี่ข้อลงในบันทึกการสร้างใหม่

บันทึกชื่อบัญชี คำสั่งเริ่มบริการ และชื่ออินเทอร์เฟซไว้ด้วยกัน เพราะโฮสต์ที่สร้างใหม่จะกู้คืนข้อมูลบัญชีแต่ไม่กู้คืนฮุกของระบบปฏิบัติการที่เรียกดีมอน สิ่งเหล่านี้อยู่คนละที่และมักถูกสำรองโดยคนละคน

ธงนี้เป็นเพียงบรรทัดเดียวที่ต้องใส่ซ้ำและลืมได้ง่าย

รักษาลำดับไว้ ธง บริการ ที่อยู่ เส้นทาง เช็กลิสต์ที่เริ่มจากตรงกลางจะให้คำตอบผิดที่มั่นใจมาก

บทความที่เกี่ยวข้อง