ติดตั้ง go2rtc บน Linux (Ubuntu, Linux Mint, Debian, CentOS Stream, Rocky Linux และ AlmaLinux)


go2rtc คืออะไร

go2rtc เป็นโปรแกรมสำหรับรับและกระจายสัญญาณวิดีโอจากกล้อง IP รองรับ RTSP, WebRTC, HLS, MJPEG และโปรโตคอลอื่น ๆ เหมาะสำหรับใช้งานร่วมกับ

  • Home Assistant
  • Frigate
  • VLC Media Player
  • FFmpeg
  • เว็บแอปพลิเคชัน CCTV

สามารถติดตั้งได้บน Linux เกือบทุกดิสโทร ไม่ว่าจะเป็น

  • Ubuntu
  • Linux Mint
  • Debian
  • CentOS Stream 9
  • Rocky Linux
  • AlmaLinux

ขั้นตอนการติดตั้งเหมือนกันเกือบทั้งหมด แตกต่างเพียงการจัดการแพ็กเกจและ Firewall ของแต่ละระบบ


ความต้องการของระบบ

  • Linux 64-bit (amd64)
  • เชื่อมต่ออินเทอร์เน็ต
  • สิทธิ์ sudo หรือ root
  • กล้อง IP ที่รองรับ RTSP (หากต้องการใช้งานกับกล้อง)

1. สร้างโฟลเดอร์ติดตั้ง

แนะนำให้ติดตั้งไว้ใน /opt/go2rtc

sudo mkdir -p /opt/go2rtc
cd /opt/go2rtc

สำหรับการทดลองใช้งาน สามารถติดตั้งไว้ในโฟลเดอร์ Home เช่น ~/go2rtc ได้เช่นกัน


2. ดาวน์โหลด go2rtc

ดาวน์โหลดเวอร์ชันล่าสุด

sudo wget https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64 -O go2rtc

ให้สิทธิ์รัน

sudo chmod +x go2rtc

3. สร้างไฟล์กำหนดค่า

สร้างไฟล์

sudo nano /opt/go2rtc/go2rtc.yaml

ตัวอย่าง

streams:

  cam1:
    - rtsp://admin:[email protected]:554/stream1

บันทึกไฟล์

Ctrl + O
Enter
Ctrl + X

4. ทดลองรัน

cd /opt/go2rtc
sudo ./go2rtc

หากไม่มีข้อผิดพลาด จะพบข้อความลักษณะนี้

HTTP API listen on :1984
RTSP listen on :8554
WebRTC listen on :8555

เปิด WebUI

http://IP-ADDRESS:1984

หรือ

http://localhost:1984

หยุดโปรแกรม

Ctrl + C

5. ตั้ง Username และ Password

แก้ไขไฟล์

sudo nano /opt/go2rtc/go2rtc.yaml

เพิ่ม

api:
  listen: ":1984"
  username: admin
  password: MyPassword123
  local_auth: true

streams:

  cam1:
    - rtsp://admin:[email protected]:554/stream1

บันทึกไฟล์ แล้วรันใหม่

เมื่อเข้า WebUI จะต้องกรอก Username และ Password


6. ค้นหาไฟล์ go2rtc และ go2rtc.yaml

หากหาไฟล์ไม่พบ

ค้นหาโปรแกรม

find / -name "go2rtc" 2>/dev/null

ค้นหาไฟล์กำหนดค่า

find / -name "go2rtc.yaml" 2>/dev/null

ตัวอย่าง

/opt/go2rtc/go2rtc
/opt/go2rtc/go2rtc.yaml

หากพบหลายไฟล์ ให้ตรวจสอบว่าโปรแกรมกำลังใช้งานไฟล์ใดอยู่


7. ตรวจสอบ Port

ค่าเริ่มต้น

ServicePort
WebUI1984
RTSP8554
WebRTC8555

ตรวจสอบว่า Port ถูกใช้งานหรือไม่

sudo ss -tulpn | grep 1984

หรือ

sudo lsof -i :1984

8. แก้ปัญหา Port ถูกใช้งาน

ค้นหา Process

sudo lsof -i :1984

หยุด Process

sudo kill PID

หากไม่หยุด

sudo kill -9 PID

หรือเปลี่ยน Port

api:
  listen: ":8080"

9. เปิด Firewall

Ubuntu / Linux Mint

หากใช้ UFW

sudo ufw allow 1984/tcp
sudo ufw allow 8554/tcp
sudo ufw allow 8555/tcp

CentOS Stream / Rocky Linux / AlmaLinux

ใช้ firewalld

sudo firewall-cmd --permanent --add-port=1984/tcp
sudo firewall-cmd --permanent --add-port=8554/tcp
sudo firewall-cmd --permanent --add-port=8555/tcp
sudo firewall-cmd --reload

10. ติดตั้งเป็น Service

สร้างไฟล์

sudo nano /etc/systemd/system/go2rtc.service

ใส่ข้อมูล

[Unit]
Description=go2rtc Streaming Server
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/go2rtc
ExecStart=/opt/go2rtc/go2rtc
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

โหลดค่าใหม่

sudo systemctl daemon-reload

เปิดใช้งาน

sudo systemctl enable go2rtc

เริ่ม Service

sudo systemctl start go2rtc

ตรวจสอบ

sudo systemctl status go2rtc

หากพบ

Active: active (running)

แสดงว่าทำงานเรียบร้อย


11. ตรวจสอบ Auto Start

sudo systemctl is-enabled go2rtc

หากแสดง

enabled

หมายความว่าเมื่อเปิดเครื่อง go2rtc จะเริ่มทำงานอัตโนมัติ


12. ดู Log

แบบเรียลไทม์

journalctl -u go2rtc -f

Log ของวันนี้

journalctl -u go2rtc --since today

13. คำสั่งที่ใช้บ่อย

เริ่ม Service

sudo systemctl start go2rtc

หยุด Service

sudo systemctl stop go2rtc

รีสตาร์ต

sudo systemctl restart go2rtc

ปิด Auto Start

sudo systemctl disable go2rtc

14. ปัญหาที่พบบ่อย

Port ถูกใช้งาน (Address already in use)

ตรวจสอบ

sudo ss -tulpn | grep 1984

หรือ

sudo lsof -i :1984

WebUI เปิดไม่ได้

  • ตรวจสอบว่า Service ทำงานอยู่
sudo systemctl status go2rtc
  • ตรวจสอบ Firewall
  • ตรวจสอบว่าใช้ IP และ Port ถูกต้อง

หา go2rtc.yaml ไม่พบ

ค้นหา

find / -name "go2rtc.yaml" 2>/dev/null

หากพบหลายไฟล์ ให้แก้ไขไฟล์ที่อยู่ในโฟลเดอร์เดียวกับโปรแกรม หรือโฟลเดอร์ที่กำหนดไว้ใน WorkingDirectory ของไฟล์ Service


Service Start ไม่ได้

ตรวจสอบ Log

journalctl -u go2rtc -xe

ตรวจสอบว่า WorkingDirectory และ ExecStart ถูกต้อง


CentOS เปิด WebUI ไม่ได้

ตรวจสอบ Firewall

sudo firewall-cmd --list-ports

หากใช้ SELinux ให้ตรวจสอบสถานะ

getenforce

หากจำเป็น ให้ตรวจสอบข้อความปฏิเสธสิทธิ์ (AVC) ใน Log ของ SELinux เพื่อวิเคราะห์ปัญหาเพิ่มเติม


สรุป

การติดตั้ง go2rtc บน Ubuntu, Linux Mint, Debian, CentOS Stream, Rocky Linux และ AlmaLinux ใช้ขั้นตอนเดียวกันเกือบทั้งหมด ได้แก่ ดาวน์โหลดโปรแกรม สร้างไฟล์ go2rtc.yaml ตั้งค่า Username และ Password เปิดใช้งานผ่าน systemd และตรวจสอบการทำงานด้วย systemctl และ journalctl

ความแตกต่างหลักอยู่ที่การจัดการ Firewall โดย Ubuntu และ Linux Mint มักใช้ UFW ส่วน CentOS Stream, Rocky Linux และ AlmaLinux ใช้ firewalld และอาจมี SELinux เปิดใช้งาน ซึ่งควรตรวจสอบเพิ่มเติมหากพบปัญหาด้านการเข้าถึงหรือสิทธิ์การทำงานของโปรแกรม

, ,