สร้าง Echolink Proxy ด้วย DigitalOcean

สวัสดีครับ

หลังจากผมเพิ่งได้ Callsign US Amateur technical license รหัส KM4WMX มา ผมก็เลยสมัครและทดลองใช้ Echolink ซึ่งเป็นระบบช่วยส่งสัญญาณเสียงจากวิทยุจาก SysOp หนึ่งไปอีกที่หนึ่งผ่านระบบอินเทอร์เน็ต และสามารถเฝ้าฟังผ่าน computer หรือ smartphone ทั่วไปได้ แต่ต้องมี license นักวิทยุสมัครเล่นและลงทะเบียนก่อน

ปัญหามันมีอยู่ว่าพื้นที่มหาวิทยาลัยผมจะไม่สามารถใช้ Echolink ได้ เพราะมีการ block UDP port บางตัวออกไป การเฝ้าฟังต้องทำผ่าน proxy ของ  Echolink ที่มีให้บริการ แต่เนื่องจากว่า proxy หนึ่งจะใช้ได้แค่ 1 user เท่านั้น proxy ก็เลยเต็มเร็ว ไม่สะดวกที่จะใช้ แต่เนื่องจากผมซึ่งเป็นนักศึกษาอยู่ จึงมีเครดิตของ Digital Ocean 50$ ผ่านโครงการ Github Student Pack อยู่ จึงทดลองทำและใช้อยู่ครับ

วิธีต่อไปนี้สามารถใช้ได้กับทุก Linux server/desktop นะครับ (จริงๆ คือ OS ไหนก็ได้ล่ะที่มี Java รันอยู่นะครับ) แต่ในที่นี้แนะนำให้ใช้เครื่องที่เปิดอยู่เสมอและสามารถใช้ Public IP ได้นะครับ และผมพิมพ์/ทำคำสั่งทั้งหมดผ่าน putty ซึ่งสามารถศึกษาได้ตามเว็บไซต์ทั่วไปได้เลย (หรือหากต้องการให้ผมสอนเพิ่มเติมก็แจ้งกันมาได้ครับ)

ขั้นตอน 1 : Setup

ในการจะทำให้โปรแกรม EcholinkProxy รันได้ จำเป็นต้องลง Java runtime ก่อน

สำหรับ debian ก็ง่ายมากครับ เพียงรันคำสั่ง (ให้ดีสั่ง apt-get update && apt-get upgrade ก่อนก็ดีครับ)

apt-get install default-jre

และเพื่อให้สะดวกต่อการรันเบื้องหลังและง่ายเวลาต้องการเข้ามาปิด (จริงๆ มีอีกหลายวิธีครับ แต่อันนี้สามารถเข้าไปมีปฏิสัมพันธ์กับหน้านั้นได้เลย) ก็ลงโปรแกรม screen ด้วยคำสั่ง

apt-get install screen

ขั้นตอน 2 ติดตั้ง EcholinkProxy และตั้งค่า

ก่อนอื่นให้เข้าไปโหลด EcholinkProxy (ลิงค์ดาวน์โหลดอยู่ด้านล่างเว็บ แนะนำให้อ่านเนื้อหาข้างในนั้นก่อนนะครับ) แล้ววางไว้สักที่หนึ่งใน server ก่อนนะครับ

ดาวน์โหลด แตกไฟล์เสร็จแล้วก็เข้าไปแก้ไขไฟล์ ELProxy.conf (ถ้าอยู่บน console ใช้ nano หรือ vi ก็ได้ครับ) เพื่อตั้งค่าครับ

ค่าหลักๆ ที่แก้ไข

  • Port=8100 เป็นพอร์ตที่เอาไว้ใช้เชื่อมต่อด้วย ปกติจะเป็น 8100 แต่ถ้าบางที่บล็อกพอร์ตสูงกว่า 1024 ก็แก้ไขเป็นพอร์ตที่ต้องการ แต่ตอนรันต้องรันด้วยสิทธิ์ root นะครับ (ไม่แนะนำ 80, 443, 21, 22 นะครับ ลองหาดูก่อนว่าพอร์ตว่างมั้ยด้วยคำสั่ง netstat -tulpn | grep :)
  • BindAddress=YOUR_IP และ ExternalBindAddress=YOUR_IP กำหนด IP Address ที่ใช้กับ Proxy ให้ติดต่อเข้ามา ตรงนี้ให้เปลี่ยน YOUR_IP เป็น IP ของเครื่อง Proxy เองด้วยนะครับ (เช็คได้ด้วยคำสั่ง ifconfig หรือในหน้าของ Doplet ของเซิร์ฟเวอร์เราเอง)
  • RegistrationName=YOUR_CALLSIGN ให้ตั้งเป็น Callsign ที่ใช้ลงทะเบียนในระบบ
  • RegistrationComment=Comment here ให้ตั้งข้อความที่จะแสดงผลในหน้ารายการ Public proxy ตรงนี้เราตั้งเป็นอะไรก็ได้ตามใจ มีวรรคมีสัญลักษณ์ได้ครับ
  • Password=PUBLIC เป็นการตั้งรหัสผ่านของ proxy เรานะครับ ถ้าต้องการให้คนอื่นเข้าได้ให้ตั้งเป็น PUBLIC  แต่ถ้าไม่ ก็ตั้งเป็นรหัสอะไรก็ได้ครับ

เสร็จแล้วก็ Save

ขั้นตอน 3 รันระบบ

ถ้าท่านใน screen ให้รันคำสั่ง screen ก่อน แล้วกด enter

แล้วสั่งรัน proxy ด้วยคำสั่ง java -jar EchoLinkProxy.jar

ตรงนี้ห้ามปิดนะครับ ไม่งั้นก็จะปิด proxy เราเองด้วย หากต้องการ console อื่นก็กด Ctrl+A แล้วกด c (หากไม่เคยมี screen อื่นรันเลย ถ้ามีให้กด Ctrl+A แล้ว n แทน) มันจะเปิดหน้า screen อื่นแทน หลังจากนี้จะต้มยำทำแกง server อื่นๆ ก็ตามใจ ปิดหน้าจอก็ไม่หาย

ตัวอย่างหน้าจอ console เมื่อรัน Proxy สำเร็จและมี User เข้าใช้งาน

ตัวอย่างหน้าจอ console เมื่อรัน Proxy สำเร็จและมี User เข้าใช้งาน

หากกลับมาเปิดหน้าจอ putty ใหม่ ก็พิมพ์ screen -r ก็จะกลับมาหน้าเดิมให้ครับ สะดวกดี

วิธีใช้โดยละเอียด ดูได้ที่บทความ How To Use Linux Screen ครับ

ขั้นตอน 4 ตั้งค่าใน Echolink

ตัวอย่างของรายชื่อของ Public Echolink server ที่ให้บริการอยู่ (ที่ highlight คือ server ผมเองล่ะ :P )

ตัวอย่างของรายชื่อของ Public Echolink server ที่ให้บริการอยู่ (ที่ highlight คือ server ผมเองล่ะ 😛 )

หน้าจอตัวอย่างการตั้งค่า Proxy ฝั่งเครื่องเฝ้าฟัง

หน้าจอตัวอย่างการตั้งค่า Proxy ฝั่งเครื่องเฝ้าฟัง

เข้าไปที่ Tool > Setup

แล้วเลือกแท็บ Proxy

เลือก Use Spectific Proxy: 

แล้วพิมพ์ค่าที่ได้จาก server ลงไปครับ

ถ้าขี้เกียจใช้ server ตัวเองก็ลองดูใน EchoLink Proxy List ดูครับ

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

QRU, 73

[UPDATE]ผลการทดลองใช้

กราฟแสดงผลจำนวนการใช้งานของ Echolink Proxy ในช่วง 6 ชั่วโมงล่าสุด

กราฟแสดงผลจำนวนการใช้งานของ Echolink Proxy ในช่วง 6 ชั่วโมงล่าสุด

เท่าที่ลองดู สัญญาณมาครบดี (แต่ยังทดลองส่งไม่ได้ ยังไม่มี Callsign ไทย ;w;) ) อาจมี Drop ช่วงเน็ตช้าๆ ไปบ้าง

ส่วน Network Usage จนถึงตอนนี้ใช้ค่อนข้างน้อยครับ ตามกราฟเลย

อ้างอิง

http://www.echolink.org/proxy.htm

http://www.cyberciti.biz/faq/what-process-has-open-linux-port/

https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/