ฉันหวังว่าจะมีคนช่วยฉันได้ - ฉันคิดว่า - งานง่ายๆ
สถานการณ์:
บน LAN ส่วนตัวของฉัน ฉันใช้เราเตอร์อินเทอร์เน็ต ("Fritz!Box") และ Raspberry Pi ที่มี Ubuntu 20.04 LTS อยู่ ฉันพัฒนา Spring Boot Web-App เล็กน้อยเพื่อวัตถุประสงค์ส่วนตัวที่ฉันต้องการใช้ใน LAN ของฉันเท่านั้น (หรืออาจเข้าถึงผ่าน VPN จากภายนอก) URL ดั้งเดิมของ Web-App คือ "http://ubuntu:8080" เนื่องจาก Raspberry ของฉันเรียกว่า "ubuntu" และแอปทำงานบนเซิร์ฟเวอร์ Tomcat
ตอนนี้ฉันต้องการเปิดเผย URL เช่น "http://thats-my.app" ภายใน LAN และใช้เป็น URL พื้นฐานสำหรับแอป ในขณะนี้ curl บน Ubuntu สามารถเข้าถึงได้ แต่พีซีเครื่องอื่นของฉันไม่สามารถทำได้
FQDN ที่ดียิ่งขึ้นคือ "http://wow.thats-my.app" (พร้อมโดเมนย่อย) ดังนั้นฉันจึงสามารถใช้โดเมนเดียวกันและโดเมนระดับบนสุดสำหรับแอปทั้งหมด และเปลี่ยนเฉพาะโดเมนย่อย เช่น "http ://super.thats-my.app" เป็นต้น..
ข้อจำกัดความรับผิดชอบ: เนื่องจากฉันทำงานผ่าน SSH การกำหนดค่าทั้งหมดจึงเสร็จสิ้นเฉพาะเทอร์มินัลเท่านั้น โปรดพิจารณาว่าฉันไม่ได้ใช้ Desktop Surface ของ Ubuntu
ขอขอบคุณล่วงหน้าสำหรับเวลาของคุณและหวังว่าจะได้รับความช่วยเหลือจากคุณ!
นี่คือการตั้งค่าที่ฉันทำกับระบบ Ubuntu สิ่งที่ไม่แสดงที่นี่ถูกแสดงความคิดเห็น!:
ยูเอฟดับบลิว
สถานะ: ใช้งานอยู่
ถึงการดำเนินการจาก
-- ------ ----
[ 1] 9090/tcp อนุญาตในทุกที่ # UBUNTU-COCKPIT
[ 2] 3306/tcp อนุญาตในทุกที่ # MYSQL
[ 3] Apache เต็ม อนุญาตให้ทุกที่ # :80,:443
[ 4] Bind9 อนุญาตให้เข้าได้ทุกที่ # :53
[ 5] OpenSSH อนุญาตในทุกที่ # :22
[ 6] 8080:8090/tcp อนุญาตในทุกที่ # TOMCAT
[ 7] 9090/tcp (v6) อนุญาตในทุกที่ (v6) # UBUNTU-COCKPIT
[ 8] 3306/tcp (v6) อนุญาตในทุกที่ (v6) # MYSQL
[ 9] Apache เต็ม (v6) อนุญาตได้ทุกที่ (v6) # :80,:443
[10] Bind9 (v6) อนุญาตให้เข้าได้ทุกที่ (v6) # :53
[11] OpenSSH (v6) อนุญาตทุกที่ (v6) # :22
[12] 8080:8090/tcp (v6) อนุญาตให้เข้าได้ทุกที่ (v6) # TOMCAT
/ etc / โฮสต์
127.0.0.1 localhost.localdomain localhost
127.0.1.1 อูบุนตู
127.0.1.1 thats-my.app
(--> ไม่มีรายการสำหรับ IPv6)
/etc/apache2/sites-available/thats-my.conf
<VirtualHost *:80>
ServerName thats-my.app
ServerAlias thats-my
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
--> ลิงก์สัญลักษณ์ไปยังไดเร็กทอรีที่เปิดใช้งานไซต์
/etc/bind/named.conf.local
โซน "thats-my.app" ใน {
พิมพ์ต้นแบบ;
ไฟล์ "/etc/bind/forward.thats-my.app.db";
อนุญาตการอัปเดต { ไม่มี; };
};
โซน "178.168.192.in-addr.arpa" ใน {
พิมพ์ต้นแบบ;
ไฟล์ "/etc/bind/reverse.thats-my.app.db";
อนุญาตการอัปเดต { ไม่มี; };
};
/etc/bind/named.conf.options
ตัวเลือก {
ไดเร็กทอรี "/var/cache/bind";
ผู้ส่งต่อ {
1.1.1.1;
1.0.0.1;
8.8.8.8;
8.8.4.4;
};
การตรวจสอบ DNSsec อัตโนมัติ;
ฟังบน v6 { ใด ๆ ; };
อนุญาตแบบสอบถาม { ใด ๆ ; };
};
/etc/bind/forward.thats-my.app.db
$TTL 604800
@ ใน SOA ns1.thats-my.app admin.ns1.thats-my.app (
5 ; อนุกรม
604800 ; รีเฟรช
86400 ; ลองอีกครั้ง
2419200 ; หมดอายุ
604800 ) ; TTL แคชเชิงลบ
;
@ ใน NS ns1.thats-my.app
ns1 ใน A 192.168.178.23
/etc/bind/reverse.thats-my.app.db
$TTL 604800
@ ใน SOA thats-my.app admin.thats-my.app (
4 ; อนุกรม
604800 ; รีเฟรช
86400 ; ลองอีกครั้ง
2419200 ; หมดอายุ
604800 ) ; TTL แคชเชิงลบ
;
@ ใน NS ns1.thats-my.app
ns1 ใน A 192.168.178.23
23 ใน PTR ns1.thats-my.app
--> อินพุตไปยังเทอร์มินัล:
sudo systemctl รีสตาร์ทชื่อ
sudo systemctl รีสตาร์ท apache2
sudo systemctl รีสตาร์ท bind9
--> การกำหนดค่า DNS ในเราเตอร์
ตั้งค่า DNS IPv4 IP เป็น 192.168.178.23 (หลักและรอง)
ตั้งค่า DNS IPv6 IP เป็นที่อยู่ IPv6 ของเครื่อง Ubuntu (หลักและรอง)
นี่คือสิ่งที่ฉันได้รับ:
บนเซิร์ฟเวอร์ Ubuntu ในเครื่อง
$ curl thats-my.app -> ตกลง
$ ขุด thats-my.app -> สถานะ: NOERROR *แต่* เซิร์ฟเวอร์ 1.1.1.1#53 ???
$ ขุด thats-my.app @ 127.0.1.1 -> "หมดเวลาการเชื่อมต่อ!"
$ ขุด thats-my.app @ 192.198.178.23 -> "การเชื่อมต่อหมดเวลา!"
บน LAN Windows-PC PowerShell
curl thats-my.app -> ไม่สามารถแก้ไขได้
บนเบราว์เซอร์ Chrome บน LAN Windows-PC
http://thats-my.app -> ไม่สามารถเข้าถึงเว็บไซต์ / DNS_PROBE_FINISHED_NXDOMAIN
หากคุณดูที่ "ขุด" - ผลลัพธ์สำหรับฉันแล้ว Bind9 ไม่ทำงานที่นี่ คุณคิดอย่างไร?
ขอบคุณ!