หากคำเตือนนี้ปรากฏขึ้นในส่วนการตั้งค่าการดูแลระบบของ Nextcloud → ภาพรวม ก่อนอื่นให้ตรวจสอบว่าเซิร์ฟเวอร์ Nextcloud สามารถแก้ไขและเข้าถึง URL มาตรฐานของตนเองได้ หรือไม่ ตั้งoverwrite.cli.urlค่าเป็น URL ที่ผู้ใช้ใช้งานจริง จากนั้นทดสอบ URL นั้นจากโฮสต์หรือคอนเทนเนอร์เดียวกันกับที่ Nextcloud ทำงานอยู่ อย่าเริ่มต้นด้วยการกำหนด IP ขาออกสาธารณะแบบคงที่ให้กับเซิร์ฟเวอร์
ข้อความ “เซิร์ฟเวอร์ไม่มีที่อยู่สำหรับเชื่อมต่อขาออก” ไม่ได้รับการยืนยันอย่างชัดเจนในคู่มือการดูแลระบบ Nextcloud ฉบับปัจจุบัน อาจเป็นการถอดความ การแปล หรือคำเตือนอื่น การแก้ไขปัญหาด้านล่างนี้ตรงกับการตรวจสอบการเชื่อมต่อด้วยตนเองที่ระบุไว้ในภาพรวมการดูแลระบบ หากคุณเห็นข้อความนี้ขณะกำหนดค่าอีเมล ให้ใช้ส่วน SMTP แยกต่างหากด้านล่างแทน
Nextcloud ตรวจสอบอะไรบ้าง และไม่ได้ตรวจสอบอะไรบ้าง
ตั้งแต่ Nextcloud เวอร์ชัน 28 เป็นต้นไป การตรวจสอบการตั้งค่าที่แสดงใน การตั้งค่าการดูแลระบบ → ภาพรวม จะทำงานจากเซิร์ฟเวอร์แทนที่จะเป็นจากเบราว์เซอร์ บันทึกการอัปเกรดของ Nextcloud ระบุว่าการตรวจสอบเหล่านี้สามารถเปิดเผยปัญหาเกี่ยวกับtrusted_domainsการoverwrite.cli.urlแก้ไข DNS การเข้าถึงเซิร์ฟเวอร์ไปยังตัวเอง ไฟร์วอลล์ และเครือข่ายคอนเทนเนอร์ นั่นหมายความว่าเส้นทางเครือข่ายของเซิร์ฟเวอร์เองมีความสำคัญ: URL ที่ใช้งานได้ในเบราว์เซอร์ของแล็ปท็อปของคุณอาจยังคงใช้งานไม่ได้จากโฮสต์หรือคอนเทนเนอร์ของ Nextcloud บันทึกการตรวจสอบการตั้งค่า Nextcloud 28 ของ Nextcloud อธิบายถึงการเปลี่ยนแปลงนี้และส่วนต่างๆ ที่ควรตรวจสอบ
นี่แตกต่างจากการเผยแพร่ระเบียน DNS ที่ชี้การรับส่งข้อมูลอินเทอร์เน็ตไปยังเซิร์ฟเวอร์ของคุณ การติดตั้งแบบส่วนตัวสามารถใช้ชื่อโฮสต์หรือที่อยู่ภายในได้ หากนั่นเป็นวิธีที่ผู้ดูแลระบบและผู้ใช้เข้าถึง การเข้าถึงจากภายนอก การรวมระบบ ลิงก์การแชร์สาธารณะ และการออกใบรับรองอาจมีข้อกำหนดที่แตกต่างกันออกไป ก่อนอื่น โปรดจดบันทึกว่าคุณเห็นคำเตือนที่ใด และคุณใช้ Nextcloud เวอร์ชันใด และวิธีการติดตั้งใด
หน้าภาพรวมคือหน้าที่ Nextcloud แสดงผลการตรวจสอบการตั้งค่าเซิร์ฟเวอร์ ภาพประกอบอินเทอร์เฟซนี้แสดงตำแหน่งที่ตั้ง ไม่ใช่คำเตือนหรือผลการทดสอบจริง
1. โปรดอ่าน URL ปัจจุบันและการตั้งค่าพร็อกซี ก่อนทำการแก้ไข
Nextcloud จะจัดเก็บการตั้งค่าหลักไว้ใน `/etc/nextcloud/ config/config.phpnextcloud/` แต่เส้นทางและคำสั่งที่ใช้ในการเรียกใช้occจะขึ้นอยู่กับวิธีการติดตั้ง Nextcloud หากติดตั้งจากซอร์สโค้ด ให้เรียกใช้คำสั่งต่อไปนี้จากไดเร็กทอรี Nextcloud โดยแทนที่เส้นทางและบัญชีเว็บเซิร์ฟเวอร์ในตัวอย่างด้วยของคุณเอง:
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domains
sudo -u www-data php /var/www/nextcloud/occ config:system:get overwrite.cli.url
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_proxies
ค่าที่ไม่ได้กำหนดอาจทำให้ไม่มีผลลัพธ์ใดๆ สำหรับ Snap, Docker หรืออุปกรณ์ ให้เรียกใช้occคำสั่งที่รองรับโดยการติดตั้งภายในสภาพแวดล้อมที่คาดไว้ คำสั่ง PHP ฝั่งโฮสต์อาจอ่านการกำหนดค่าที่ไม่ถูกต้องหรือไม่มีการกำหนดค่าเลย คัดลอกการกำหนดค่าที่ใช้งานอยู่ก่อนที่จะแก้ไข และเก็บสำเนาไว้นอกconfigไดเร็กทอรีหลักของ Nextcloud เพื่อป้องกันไม่ให้ถูกโหลดเป็นไฟล์การกำหนดค่าเพิ่มเติม
trusted_domainsคือรายการของชื่อโฮสต์หรือที่อยู่ IP ที่ Nextcloud ยอมรับในคำขอขาเข้า คือ URL พื้นฐานมาตรฐานที่ใช้เมื่อ Nextcloud สร้าง URL นอกเหนือจากคำขอเว็บปกติ เช่น จากงาน cron หรือคำสั่งบรรทัดคำสั่ง ควรมีรูปแบบ (scheme) และเมื่อเกี่ยวข้อง ควรมีไดเร็กทอรีย่อยของการติดตั้ง เอกสาร อ้างอิงการกำหนดค่า Nextcloud overwrite.cli.urlปัจจุบันได้บันทึกพารามิเตอร์ URL และพร็อกซีเหล่านี้ไว้แล้ว
2. ทดสอบ DNS และ HTTPS จากสภาพแวดล้อม Nextcloud
ใช้ชื่อโฮสต์เดียวกันกับที่ปรากฏในoverwrite.cli.url. เรียกใช้การตรวจสอบเหล่านี้บนเซิร์ฟเวอร์ Nextcloud หาก Nextcloud ถูกบรรจุอยู่ในคอนเทนเนอร์ ให้เรียกใช้การตรวจสอบเหล่านี้ภายในคอนเทนเนอร์แอปพลิเคชันหรือคอนเทนเนอร์ที่เทียบเท่ากันบนเครือข่ายเดียวกัน:
getent ahosts cloud.example.com
curl --connect-timeout 10 -sS -o /dev/null -w 'HTTP %{http_code}\n' https://cloud.example.com/status.php
แทนที่cloud.example.comด้วยชื่อโฮสต์จริงของคุณ หาก Nextcloud ติดตั้งอยู่ในไดเร็กทอรีย่อย เช่น/nextcloudให้เพิ่มพาธนั้นก่อน/status.phpควรgetentส่งคืนที่อยู่ซึ่งเซิร์ฟเวอร์สามารถกำหนดเส้นทางไปได้curlคำสั่งควรทำการตรวจสอบ TLS ให้เสร็จสมบูรณ์และรับการตอบสนอง HTTP ปกติจากปลายทางสถานะของ Nextcloud ความล้มเหลวของ DNS การหมดเวลา การปฏิเสธการเชื่อมต่อ ข้อผิดพลาดของใบรับรอง หรือการเปลี่ยนเส้นทางที่ไม่คาดคิดจะจำกัดปัญหาให้แคบลงเหลือเพียงการแก้ไขชื่อ การกำหนดเส้นทาง/ไฟร์วอลล์ พร็อกซีแบบย้อนกลับ หรือ TLS อย่าเพิ่ม-kเพื่อข้ามการตรวจสอบใบรับรอง เพราะนั่นจะซ่อนปัญหาแทนที่จะแก้ไข
ทำการตรวจสอบ DNS และ HTTPS จากเซิร์ฟเวอร์หรือคอนเทนเนอร์ที่รัน Nextcloud การทดสอบผ่านเบราว์เซอร์ไคลเอ็นต์เพียงอย่างเดียวไม่สามารถยืนยันเส้นทางนี้ได้
หาก DNS ส่งคืนทั้ง IPv4 และ IPv6 ให้ตรวจสอบว่าทั้งสอง IPv4 และ IPv6 นั้นถูกต้องและสามารถเข้าถึงได้จากสภาพแวดล้อม Nextcloud เรคอร์ด AAAA ที่ล้าสมัยอาจทำให้ไคลเอ็นต์หรือการตรวจสอบฝั่งเซิร์ฟเวอร์บางส่วนเลือกเส้นทาง IPv6 ที่ใช้งานไม่ได้ ลบหรือแก้ไขเรคอร์ด DNS ก็ต่อเมื่อยืนยันแล้วว่าที่อยู่ดังกล่าวไม่ได้ให้บริการอีกต่อไป หากโดเมนแปลงเป็น IP สาธารณะของคุณได้ แต่เซิร์ฟเวอร์ไม่สามารถเชื่อมต่อกลับผ่านเราเตอร์ได้ ให้ตรวจสอบ NAT loopback (หรือที่เรียกว่า hairpin NAT) หรือกำหนดค่า DNS แบบ split-horizon เพื่อให้ชื่อโฮสต์แปลงเป็นที่อยู่ภายในจากภายในเครือข่ายของคุณ
3. ตั้งค่า URL หลักให้เป็นที่อยู่เว็บที่ผู้ใช้ใช้งานจริง
สำหรับการติดตั้งจากซอร์สโค้ด ให้ตั้งค่าoverwrite.cli.urlเป็น URL พื้นฐานที่ใช้จากภายนอกหรือภายใน รวมถึง HTTPS และไดเร็กทอรีย่อยหากมี ตัวอย่างเช่น:
sudo -u www-data php /var/www/nextcloud/occ config:system:set overwrite.cli.url --value="https://cloud.example.com"
หากผู้ใช้เข้าถึง Nextcloud ที่https://example.com/nextcloudให้ใส่/nextcloudค่าลงในช่องนี้ อย่าใส่ชื่อโฮสต์ SMTP ที่นี่ และอย่าใส่พาธของหน้าเว็บ เช่น/settings/adminNextcloud อธิบายว่านี่คือ URL พื้นฐานมาตรฐานสำหรับการสร้าง URL จากบรรทัดคำสั่งและในพื้นหลัง พาธและบัญชีตัวอย่างข้างต้นเป็นค่าทั่วไปสำหรับการติดตั้งจากแหล่งที่มาเท่านั้น การติดตั้งแบบ Snap และคอนเทนเนอร์ต้องใช้คำสั่งที่ระบุไว้เป็นเอกสารเฉพาะของตนเอง
หากไม่มีชื่อโฮสต์อยู่ในรายการtrusted_domainsให้เพิ่มโดยใช้ดัชนีตัวเลขที่ว่างอยู่ถัดไป ตรวจสอบรายการที่มีอยู่ก่อนแล้ว เพื่อไม่ให้แทนที่รายการที่มีอยู่แล้ว:
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value="cloud.example.com"
เปลี่ยน1ไปใช้ดัชนีที่ไม่ได้ใช้งานในระบบของคุณ เพิ่มเฉพาะชื่อโฮสต์หรือที่อยู่ IP ที่ Nextcloud ควรยอมรับ การตั้งค่านี้ไม่ได้สร้างระเบียน DNS และไม่ทำให้เซิร์ฟเวอร์ส่วนตัวสามารถเข้าถึงได้จากภายนอก
ชื่อโฮสต์ใน trusted_domains และ URL แบบเต็ม (canonical URL) มีจุดประสงค์ที่แตกต่างกัน ให้ใช้โฮสต์จริงของคุณ และสำหรับ overwrite.cli.url ให้ระบุ scheme และ webroot ที่ถูกต้องด้วย
4. ตั้งค่าพร็อกซีแบบย้อนกลับเฉพาะเมื่อโครงสร้างเครือข่ายของคุณต้องการเท่านั้น
เมื่อรีเวิร์สพร็อกซีทำการยุติ HTTPS และส่ง HTTP ไปยัง Nextcloud แอปพลิเคชันอาจตรวจพบโปรโตคอลภายในแทนที่จะเป็นโปรโตคอล HTTPS ที่ผู้ใช้เห็น Nextcloud กำหนดให้คุณต้องระบุที่อยู่พร็อกซีจริงในไฟล์trusted_proxies.config.js พร็อกซีต้องส่งส่วนหัวที่ส่งต่ออย่างเหมาะสมด้วย การเชื่อถือพร็อกซีหรือเครือข่ายกว้างอย่างไม่ถูกต้องอาจทำให้ไคลเอนต์ปลอมแปลงที่อยู่ IP ที่ปรากฏ ดังนั้นอย่าคัดลอกที่อยู่ IP ของพร็อกซีตัวอย่างโดยตรง
หากการตรวจจับ URL อัตโนมัติยังคงล้มเหลว ให้ตั้งค่าเฉพาะค่าที่ต้องการสำหรับการเขียนทับเท่านั้น สำหรับพร็อกซีที่ยุติ TLS overwriteprotocolอาจจำเป็นต้องhttpsตั้งค่า ตั้งค่าoverwritehostเฉพาะเมื่อ Nextcloud ไม่สามารถใช้โฮสต์ที่ถูกต้องซึ่งส่งต่อโดยพร็อกซีได้ ตั้งค่าoverwritewebrootเฉพาะเมื่อตรวจไม่พบเส้นทางสาธารณะอย่างถูกต้องคู่มือพร็อกซีแบบย้อนกลับของ Nextcloud ฉบับปัจจุบัน มีตัวอย่างและเตือนว่าการตั้งค่าพร็อกซีที่เชื่อถือได้ขึ้นอยู่กับซอฟต์แวร์พร็อกซีและเครือข่ายจริง
โปรดเชื่อถือเฉพาะที่อยู่พร็อกซีแบบย้อนกลับที่ถูกต้องเท่านั้น ค่าตัวอย่างเป็นเพียงค่าที่ใช้เป็นตัวอย่างเท่านั้น โปรดใช้ที่อยู่และรูปแบบจากระบบพร็อกซีของคุณเอง
5. หาก URL ยังใช้งานไม่ได้ ให้ตรวจสอบไฟร์วอลล์, DNS และเส้นทางคอนเทนเนอร์อีกครั้ง
หาก URL ถูกต้อง แต่การทดสอบฝั่งเซิร์ฟเวอร์curlล้มเหลว ให้ตรวจสอบเส้นทางระหว่าง Nextcloud กับ URL นั้น ยืนยันว่าอนุญาต HTTPS ขาออก คอนเทนเนอร์สามารถสอบถาม DNS ได้ และพร็อกซีแบบย้อนกลับสามารถส่งต่อคำขอไปยังแอปพลิเคชันได้ ไฟร์วอลล์ของโฮสต์ กลุ่มความปลอดภัยบนคลาวด์ เราเตอร์ กฎพร็อกซี หรือเครือข่ายคอนเทนเนอร์อาจปิดกั้นเส้นทางนี้ เอกสารของ Nextcloud ระบุอย่างชัดเจนถึงการกำหนดค่าไฟร์วอลล์และเครือข่ายคอนเทนเนอร์เมื่อการตรวจสอบฝั่งเซิร์ฟเวอร์ไม่สามารถเข้าถึง URL ที่กำหนดค่าไว้ได้
อย่าเปิดพอร์ตขาเข้าสู่อินเทอร์เน็ตทั้งหมดเพียงเพื่อทำการตรวจสอบตัวเองให้ผ่าน หากนี่เป็นเซิร์ฟเวอร์ Nextcloud ส่วนตัวโดยตั้งใจ ให้ใช้ชื่อโฮสต์และเส้นทางที่ใช้งานได้ภายในเครือข่ายส่วนตัวเท่านั้น DNS สาธารณะ การส่งต่อเราเตอร์ และที่อยู่ IP ที่สามารถเข้าถึงได้จากภายนอกนั้นจำเป็นเฉพาะสำหรับบริการที่จำเป็นต้องเข้าถึงได้จากภายนอกเท่านั้น หากคุณอยู่เบื้องหลัง NAT ของผู้ให้บริการที่ป้องกันการเข้าถึงขาเข้า VPN หรือการออกแบบพร็อกซีแบบย้อนกลับ/อุโมงค์ที่รองรับอาจเหมาะสมกว่าการเปลี่ยนรายการโดเมนที่เชื่อถือได้ของ Nextcloud
หากข้อความนั้นมาจากหน้าการตั้งค่าอีเมล
อีเมลเป็นฟีเจอร์แยกต่างหาก Nextcloud ไม่ได้มีเซิร์ฟเวอร์อีเมลที่สมบูรณ์ แต่จะเชื่อมต่อกับเซิร์ฟเวอร์ SMTP ที่มีอยู่แล้ว เช่น qmail หรือ Sendmail ในการตั้งค่าการดูแลระบบ → การตั้งค่าพื้นฐาน ให้ระบุชื่อโฮสต์และพอร์ตของเซิร์ฟเวอร์อีเมล โหมดการเข้ารหัส ที่อยู่ผู้ส่ง และข้อมูลรับรองตามที่ผู้ให้บริการอีเมลนั้นๆ กำหนด ทดสอบโดยใช้ปุ่มส่งอีเมลของ Nextcloud การที่ URL เว็บของ Nextcloud ใช้งานได้ไม่ได้หมายความว่าสามารถเข้าถึง SMTP ได้ และชื่อโฮสต์ของ SMTP ก็ไม่สามารถใช้แทน URL ได้overwrite.cli.urlคู่มือการกำหนดค่าอีเมลของ Nextcloud จะอธิบายการตั้งค่าอีเมลและการทดสอบในปัจจุบัน
ตรวจสอบผลลัพธ์และหลีกเลี่ยงการวินิจฉัยผิดพลาดที่พบบ่อย
หลังจากทำการเปลี่ยนแปลงแล้ว ให้ทำการตรวจสอบ DNS และ HTTPS ซ้ำอีกครั้งจากเซิร์ฟเวอร์หรือคอนเทนเนอร์เดียวกัน จากนั้นโหลดการตั้งค่าการดูแลระบบ → ภาพรวม อีกครั้ง ตรวจสอบให้แน่ใจว่าผู้ใช้ของคุณยังคงสามารถลงชื่อเข้าใช้ผ่าน URL ปกติได้ และลิงก์ที่สร้างในเบื้องหลังใช้รูปแบบและเส้นทางที่ถูกต้อง หากคำเตือนยังคงอยู่ ให้บันทึกข้อความที่แน่นอน เวอร์ชัน Nextcloud วิธีการติดตั้ง และเอาต์พุตคำสั่งฝั่งเซิร์ฟเวอร์ หลักฐานเหล่านั้นจะช่วยแยกแยะปัญหาการตรวจจับ URL ออกจากความล้มเหลวของ SMTP หรือปัญหาเกี่ยวกับนโยบายเครือข่าย
ตรวจสอบแล้ว: เอกสาร Nextcloud ฉบับปัจจุบันระบุว่า การตรวจสอบการตั้งค่าฝั่งเซิร์ฟเวอร์จำเป็นต้องมีการกำหนดค่าชื่อโฮสต์และ URL มาตรฐานเพื่อให้สามารถเข้าถึงได้จากเซิร์ฟเวอร์ขึ้นอยู่กับการตั้งค่าของคุณ: ว่าเส้นทางที่ถูกต้องใช้ที่อยู่สาธารณะ ที่อยู่ส่วนตัว DNS แบบแยกส่วน พร็อกซีแบบย้อนกลับ เครือข่ายคอนเทนเนอร์ หรือ NAT ลูปแบ็กข้อความเพียงอย่างเดียวไม่สามารถระบุได้ ว่า Nextcloud ต้องการ IP สาธารณะขาออกคงที่ หรือว่าคำเตือนนั้นเกี่ยวข้องกับ SMTP โปรดตรวจสอบหน้าเว็บและข้อความทั้งหมดก่อนเปลี่ยนแปลงการตั้งค่าเครือข่ายหรืออีเมล
ในกรณีส่วนใหญ่ที่ตรงกับการตรวจสอบการเชื่อมต่อในภาพรวมการดูแลระบบ การแก้ไข URL หลักและทำให้สามารถเข้าถึงได้จากรันไทม์ของ Nextcloud จะช่วยแก้ปัญหาความไม่ตรงกันที่เกิดขึ้นได้ ควรจำกัดการเปลี่ยนแปลงพร็อกซีและไฟร์วอลล์ให้อยู่เฉพาะเส้นทางที่การติดตั้งของคุณใช้งานจริงเท่านั้น