ตั้งค่า Raspberry Pi เพื่อใช้งาน AMPRNet IP 44 ของนักวิทยุสมัครเล่น

Digital Ham Radio
8 min readApr 2, 2023

สำหรับในบทความนี้จะเป็นการติดตั้ง Package L2TP ใน Raspberry Pi โดยจะมีการตั้งค่าเพื่อให้เชื่อมไปยัง VPN Server AMPRNet IP44 ของทีม DTDXA โดยเมื่อทำการตั้งค่าเรียบร้อยแล้วตัว Raspberry Pi จะมี IP Address 44.159.12.xx อยู่ในตัวเลย ซึ่งวิธีการนี้สามารถนำไปใช้ใน PC ที่ลง OS เป็น Debian ได้ด้วยเพราะมีพื้นฐานเดียวกันกับ OS ของ Raspberry Pi ซึ่งเป็น Raspbian

ในบทความนี้คำสั่งต่าง ๆ ผมทำด้วยสิทธิ์ของ root ถ้าท่านใด login ด้วย user ธรรมดา การใช้คำสั่งต่าง ๆ จะต้องมี sudo นำหน้าด้วย หรืออาจใช้ sudo su เพื่อเปลี่ยนสิทธิ์เป็น root ก่อนใช้คำสั่งก็ได้

เริ่ม Update และติดตั้ง package

ในการติดตั้ง package ต่าง ๆ ของ Linux นั้นควรจะมีการ update ระบบก่อนทุกครั้ง สำหรับ Raspberry Pi จะใช้คำสั่ง apt-get update

apt-get update
ภาพตัวอย่างการใช้คำสั่ง apt-get update เพื่อ update package ต่าง ๆ

ถ้าหากเป็น Image Allstarlink beta 2.0.0 อาจจะเกิดปัญหาในการ update ตามภาพตัวอย่างด้านล่าง ให้ใช้คำสั่งเพื่อเพิ่ม key repository เข้าไปครับ

ภาพตัวอย่าง error ต่าง ๆ ที่ขึ้นมาด้วยการใช้คำสั่ง apt-get update

ให้ใช้คำสั่งตามบรรทัดด้านล่างนี้เพื่อเพิ่ม key repository ของ ASL Beta เข้าไป

curl -s http://apt.allstarlink.org/repos/repo_signing.key | apt-key add -
ภาพตัวอย่างการใช้คำสั่งเพื่อเพิ่ม key repository ของ ASL Beta 2.0.0 เข้าไป

ทำการ update package อีกครั้งด้วยคำสั่ง apt-get update ที่มี option
— allow-releaseinfo-change ด้วย เพื่อยอมให้มีการเปลี่ยนเวอร์ชั่นของระบบ

apt-get update --allow-releaseinfo-change
ภาพตัวอย่างการใช้คำสั่ง apt-get update เพื่อ update package อีกครั้ง

จะเห็นว่าคราวนี้ error ต่าง ๆ จะหายไปแล้ว ซึ่งต่อไปนี้สามารถ update ระบบได้ด้วยคำสั่ง apt-get update ปกติได้แล้ว

เริ่มติดตั้ง package ต่าง ๆ ที่เกี่ยวกับ VPN L2TP IPSec

การติดตั้ง package VPN L2TP IPSec ใน Raspberry Pi หรือ Debian Linux นั้นทำได้ไม่ยาก โดยการใช้คำสั่ง apt-get install และตามด้วยชื่อ package ต่าง ๆ ที่ต้องการติดตั้ง ตามตัวอย่างด้านล่าง

apt-get -y install strongswan xl2tpd net-tools
ภาพตัวอย่างการใช้คำสั่งติดตั้ง package L2TP IPSec ของ Raspberry Pi

ในการติดตั้งถ้ามีข้อความขึ้นเตือนให้กด Enter ผ่านไปนะครับ

เริ่มสร้างไฟล์ตั้งค่าต่าง ๆ ของ L2TP IPSec

สำหรับไฟล์แรกจะเป็นไฟล์ config ของ IPSec ให้ใช้คำสั่ง pico /etc/ipsec.conf แล้วกด Enter หากมีข้อมูลเดิมอยู่ในไฟล์ให้ลบทิ้งโดยการกด Ctrl+K เพื่อลบออกทีละบรรทัด แล้ว copy ข้อมูลการตั้งค่าใหม่ลงไปแทน เมื่อเสร็จแล้วกด Ctrl+O แล้ว Enter เพื่อบันทึก และ Ctrl+X เพื่อออกจากการแก้ไข

config setup

conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev1
authby=secret
ike=aes128-sha1-modp1024,3des-sha1-modp1024!
esp=aes128-sha1-modp1024,3des-sha1-modp1024!

conn L2TP-PSK
keyexchange=ikev1
left=%defaultroute
auto=add
authby=secret
type=transport
leftprotoport=17/1701
rightprotoport=17/1701
# set this to the ip address of your vpn server
right=119.59.96.112
ภาพตัวอย่างข้อมูลในไฟล์ /etc/ipsec.conf

ต่อไปทำการแก้ไขไฟล์ /etc/ipsec.secrets ซึ่งเป็นไฟล์เก็บค่าคีย์ของ IPSec ให้ใช้คำสั่ง pico /etc/ipsec.secrets เพื่อแก้ไข ถ้ามีข้อมูลเดิมอยู่ก็กด Ctrl+K ลบออกให้หมดและใส่ข้อมูลด้านล่างลงไป หลังจากนั้นกด Ctrl+X และ Ctrl+O เพื่อบันทึกและออกจากการแก้ไข

: PSK "dtdxa"
ภาพตัวอย่างข้อมูลในไฟล์ /etc/ipsec.secrets

ทำการแก้ไขไฟล์ /etc/xl2tpd/xl2tpd.conf ซึ่งเป็นไฟล์การตั้งค่าของ L2TP ด้วยคำสั่ง pico /etc/xl2tpd/xl2tpd.conf หากมีข้อมูลเดิมอยู่ก็ให้ลบและใส่ข้อมูลใหม่ลงไปแทน ทำการบันทึกและออกจากการแก้ไข

[lac myvpn]
lns = 119.59.96.112
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
ภาพตัวอย่างข้อมูลในไฟล์ /etc/xl2tpd/xl2tpd.conf

ต่อไปแก้ไขไฟล์ /etc/ppp/options.l2tpd.client ซึ่งเป็นไฟล์ตั้งค่าในการเชื่อมต่อ VPN L2TP ไว้ ซึ่งจะเก็บ username/password ในการเชื่อมต่อด้วย โดยการใช้คำสั่ง pico /etc/ppp/options.l2tpd.client แล้วใส่ข้อมูลต่าง ๆ ลงไป ทำการบันทึกค่าและออกจากการแก้ไขด้วยการกด Ctrl+O และ Ctrl+X

pico /etc/ppp/options.l2tpd.client
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
defaultroute
usepeerdns
connect-delay 5000
name "username"
password "password"
ภาพตัวอย่างข้อมูลในไฟล์ /etc/ppp/options.l2tpd.client

กำหนดโหมดของไฟล์ /etc/ppp/options.l2tpd.client ให้สามารถอ่านได้เฉพาะผู้ที่มีสิทธิ์ root เท่านั้น ด้วยคำสั่งด้านล่าง

chmod 600 /etc/ppp/options.l2tpd.client
ภาพตัวอย่างการใช้คำสั่งกำหนดสิทธิ์ในการเข้าถึงไฟล์ /etc/ppp/options.l2tpd.client

ทำการสร้างไฟล์ control ของบริการ xl2tpd ตามคำสั่งด้านล่าง

mkdir -p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp-control
ภาพตัวอย่างการสร้างไฟล์ control service ของ xl2tpd

ทำการ restart service ต่าง ๆ ที่เกี่ยวข้องกับการเชื่อมต่อ VPN L2TP ด้วยคำสั่ง…

service strongswan restart
service xl2tpd restart
service ipsec restart
ภาพตัวอย่างการใช้คำสั่งเพื่อ restart service ต่าง ๆ ของการเชื่อมต่อ VPN L2TP

การตั้งค่าต่าง ๆ เพื่อเชื่อมต่อ VPN L2TP ก็ถือว่าเสร็จแล้ว ให้ทดสอบการเชื่อมต่อโดยการใช้คำสั่ง…

ipsec up L2TP-PSK
echo "c myvpn" > /var/run/xl2tpd/l2tp-control
ภาพตัวอย่างการใช้คำสั่ง ipsec up เพื่อทดสอบการเชื่อมต่อ L2TP

จะเห็นว่าสถานะของ connection เป็น successfully ซึ่งก็หมายถึงเชื่อมต่อได้สำเร็จ ทดสอบใช้คำสั่ง route จะเห็นตาราง routing มี connection ppp0 ขึ้นมา

ภาพตัวอย่างผลที่ได้จากการใช้คำสั่ง route

หรือถ้าเราใช้คำสั่ง ifconfig ก็จะมีข้อมูลต่าง ๆ ของ Interface ppp0 ด้วย

ภาพตัวอย่างผลที่ได้จากการใช้คำสั่ง ifconfig

ขณะนี้ L2TP IPSec เราเชื่อมต่อและได้หมายเลข IP44 มาแล้วก็จริง แต่ข้อมูลต่าง ๆ นั้นยังวิ่งออกทางอินเตอร์เน็ตเส้นหลักอยู่ ซึ่งจะต้องมีการตั้งค่าเพิ่มเติมอีก สั่งหยุดการทำงานของ L2TP IPSec ก่อนโดยใช้คำสั่ง…

echo "d myvpn" > /var/run/xl2tpd/l2tp-control
ipsec down L2TP-PSK
ภาพตัวอย่างการใช้คำสั่งหยุดการทำงานของ L2TP IPSec และคำสั่ง route

จะเห็นว่าหลังจากสั่งหยุดการทำงานของ L2TP IPSec แล้ว เมื่อใช้คำสั่ง route จะไม่เห็น Interface ppp0 แล้วเช่นกัน

การกำหนดให้ข้อมูลต่าง ๆ วิ่งออกที่ gateway ของ L2TP IPSec

สำหรับการกำหนดเส้นทางของข้อมูลนั้นค่อนข้างซับซ้อนเข้าใจยาก ให้ค่อย ๆ ทำความเข้าใจนะครับ ผมจะเริ่มจากกำหนดเส้นทางของ IP gateway ของ VPN Server ให้ออกทางอินเตอร์เน็ตเส้นหลักตลอด ไม่ให้ออกทาง L2TP IPSec เพราะอินเตอร์เน็ตเส้นหลักนั้นเป็นพื้นฐานในการเชื่อมต่อ จะต้องให้ออกที่เส้นหลักเท่านั้น ตัวอย่างนี้ IP gateway ของ VPN Server คือ 119.59.96.112 ก็จะต้องออกที่หมายเลข IP gateway ของอินเตอร์เน็ตเส้นหลัก สั่งได้โดยการใช้คำสั่ง ip route

ip route add 119.59.96.112/32 via 192.168.66.1
ภาพตัวอย่างการใช้คำสั่ง ip route เพื่อกำหนดเส้นทางข้อมูลให้กับ IP 119.59.96.112

ถ้า IP Gateway ที่ใช้อยู่เป็น 192.168.1.1 ก็จะต้องเปลี่ยนค่าตามตัวอย่าง

ip route add 119.59.96.112/32 via 192.168.1.1

ณ ตอนนี้ถ้ามีการเรียกไปยังหมายเลข IP 119.59.96.112 ก็จะออกทาง IP ของ default gateway เท่านั้น

ต่อไปเราจะทำการลบ default gateway ออกเพื่อเตรียมการที่จะให้เส้นทางข้อมูลออกทาง L2TP IPSec ให้ใช้คำสั่ง ip route del default เพื่อลบเส้นทางข้อมูลนี้

ip route del default
ภาพตัวอย่างผลที่ได้จากการใช้คำสั่ง ip route เพื่อลบ default gateway

จะเห็นว่าตอนนี้ default จากเดิมที่อยู่บรรทัดแรกนั้นหายไปแล้ว ถ้าเรามีการสั่งให้ L2TP IPSec ทำงานตอนนี้ก็จะเพิ่มขึ้นมาเป็น default gateway แทน ให้ใช้คำสั่งเหมือนเดิมที่ทำให้ ipsec up ขึ้นมา

ipsec up L2TP-PSK
echo "c myvpn" > /var/run/xl2tpd/l2tp-control
ภาพตัวอย่างผลที่ได้จากการสั่งให้ L2TP IPSec ทำงาน

ตามภาพด้านบนจะเห็นว่าหลังจากสั่งให้ L2TP IPSec ทำงานแล้ว default gateway จะขึ้นมาเป็นของ Interface ppp0 ซึ่งหมายถึงตอนนี้ข้อมูลต่าง ๆ ก็จะวิ่งผ่าน ppp0 หรือ VPN L2TP IPSec นั้นเอง ทดสอบใช้คำสั่ง ping จากเครื่อง PC ของเราไปที่ IP44 ที่เราได้รับมาก็จะต้องมี reply กลับมา

ภาพตัวอย่างการใช้คำสั่ง ping ไปที่หมายเลข IP44 ที่ได้รับมา

ตอนนี้ถือว่าการตั้งค่าให้ Raspberry Pi หรือ Debian สำเร็จแล้วทุกอย่าง สามารถใช้งานได้ แต่การนำไปใช้งานจริงผู้ใช้ควรศึกษาเพิ่มเติม เพราะในความเป็นจริงแล้วหากอินเตอร์เน็ตเส้นหลักหลุดไป ถึงแม้ว่าจะกลับมาแล้วก็ตาม L2TP IPSec ของเราก็อาจจะไม่กลับมา up เหมือนเดิมก็ได้ จะต้องมีการสั่งให้ up ขึ้นมา ซึ่งต้องนำไปประยุกต์ใช้งาน อาจจะมีการตั้ง script ให้มีการตรวจสอบการเชื่อมต่อเองทุก ๆ 1 หรือ 2 นาทีก็ได้ หากไม่มีการ up ขึ้นมาก็ให้ script สั่ง ipsec up เอง

คำสั่งที่จะทำให้ L2TP IPSec ทำงาน

ipsec up L2TP-PSK
echo "c myvpn" > /var/run/xl2tpd/l2tp-control

คำสั่งที่จะทำให้ L2TP IPSec หยุดทำงาน

echo "d myvpn" > /var/run/xl2tpd/l2tp-control
ipsec down L2TP-PSK

และแน่นอนหากมีค่า default gateway เดิมอยู่ต้องลบออกเสมอ มิฉะนั้น default gateway ของเราก็จะไม่ขึ้นเป็น ppp0 ด้วยคำสั่ง

ip route del default

สำหรับการสั่งให้ L2TP IPSec เริ่มเชื่อมต่ออัตโนมัติทุกครั้งที่มีการ boot ระบบขึ้นมาเราอาจจะทำเป็น script เพื่อให้ทำงานเองทุกครั้งที่ boot ขึ้นมาโดยนำไปไว้ในไฟล์ /etc/rc.local โดยใช้คำสั่ง pico เสร็จแล้ววาง script ลงไป อย่าลืมเปลี่ยนหมายเลข IP ของ gateway อินเตอร์เน็ตเส้นหลักเป็นของตัวเองที่ใช้อยู่ ทำการบันทึกค่าต่าง ๆ โดยการกด Ctrl+O และ Ctrl+X เพื่อออกจากการแก้ไข

pico /etc/rc.local

แล้วนำคำสั่งต่าง ๆ วางลงในไฟล์ /etc/rc.local

#!/bin/sh -e

sleep 20

/usr/bin/ip route add 119.59.96.112/32 via 192.168.66.1

/usr/bin/ip route del default

sleep 2

/usr/sbin/ipsec up L2TP-PSK

sleep 2

echo “c myvpn” > /var/run/xl2tpd/l2tp-control
ภาพตัวอย่างข้อมูลในไฟล์ /etc/rc.local

sleep 20 หมายถึงให้รอ 20 วินาทีแล้วค่อยทำคำสั่งต่อไป เพื่อให้รออินเตอร์เน็ตเส้นหลักเชื่อมต่อเรียบร้อยก่อน

เสร็จแล้วสั่งเปลี่ยนโหมดของไฟล์ /etc/rc.local ให้เป็นแบบที่ run ได้โดยใช้คำสั่ง…

chmod 755 /etc/rc.local
ภาพตัวอย่างการใช้คำสั่งเพื่อเปลี่ยนโหมดของไฟล์ /etc/rc.local

ทดสอบ reboot ระบบ และรอดูผลอาจจะลองใช้เครื่อง PC ping หมายเลข IP44 หรือลองใช้คำสั่ง route และ ifconfig เพื่อดูผลลัพธ์หลังจาก reboot ระบบ

ภาพตัวอย่างผลจากการทดสอบ ping ไปยังหมายเลข IP44
ภาพตัวอย่างจากการใช้คำสั่ง route และ ifconfig

เมื่อเราใช้ AMPRNet IP44 แล้วสิ่งที่จะลืมไม่ได้เลยคือการเปลี่ยนรหัสผ่านของ user และ root ไม่ให้เป็นค่าทั่วไป หรือสั้นเกินไป เพราะหมายเลข AMPRNet IP44 ที่เราได้รับมานี้เป็น IP แบบ Fixed IP ไม่เปลี่ยนแปลงซึ่งก็เปรียบเสมือเป้านิ่งให้เหล่า hacker ได้ทดสอบวิชากัน ยิ่งถ้าไม่มีระบบ Firewall ป้องกันการเข้าถึงด้วยแล้วยิ่งอันตรายมาก

ทำให้ AMPRNet IP44 เชื่อมต่ออัตโนมัติทุกครั้งที่ boot ระบบ (มี update ด้านล่างนะครับ แทนการทำในขั้นตอนนี้)

วิธีง่าย ๆ ที่จะทำให้ AMPRNet IP44 ของเราทำงานเองทุกครั้งที่ Raspberry Pi เริ่มทำงานก็คือการเพิ่ม script หรือคำสั่งต่าง ๆ เข้าไปในไฟล์ /etc/rc.local เพื่อสั่งให้ L2TP/IPSec เชื่อมต่อเข้ากับ VPN Server ซึ่งไฟล์ rc.local นี้จะทำงานทุกครั้งที่ boot ระบบขึ้นมา โดยใช้คำสั่ง pico แก้ไขไฟล์นี้ตามที่อยู่และชื่อของไฟล์

pico /etc/rc.local
ภาพตัวอย่างการใช้คำสั่ง pico เพื่อแก้ไขไฟล์ rc.local ซึ่งอยู่ที่ /etc

เมื่อพิมพ์คำสั่งแล้วกด Enter จะเห็นข้อมูลในไฟล์ rc.local ซึ่งเดิมจะมีข้อมูล Script อยู่แล้ว ให้เพิ่มบรรทัดคำสั่งที่เราต้องการเพิ่มไปก่อนบรรทัด exit 0

ภาพตัวอย่างในไฟล์ rc.local ก่อนเพิ่ม script ต่าง ๆ

ตัวอย่าง script ที่เพิ่มเข้าไป

sleep 10

L2TP_SERVER="119.59.96.112"

GATEWAY=$(/usr/sbin/route -n | /usr/bin/grep "^0.0.0.0" | /usr/bin/awk '{print $2}')

/usr/bin/ip route add $L2TP_SERVER via $GATEWAY

/usr/bin/ip route delete default

/usr/sbin/ipsec up L2TP-PSK

sleep 1

/usr/bin/echo "c myvpn" > /var/run/xl2tpd/l2tp-control

sleep 1
บรรทัด sleep 10 หรือ sleep 1 คือ ให้เครื่องรอการทำงานเป็นเวลา 10 หรือ 1 วินาที
บรรทัด L2TP_SERVER= คือกำหนดหมายเลข IP ของ Server ในการเชื่อมต่อไว้ที่ตัวแปร L2TP_SERVER
บรรทัด GATEWAY= คือหาค่า IP ของ router หลักแล้วเก็บไว้ในตัวแปร GATEWAY
/usr/bin/ip route add $L2TP_SERVER via $GATEWAY คือคำสั่งกำหนดเส้นทางของ VPN Server ให้วิ่งผ่าน router หลัก
/usr/bin/ip route delete default คือคำสั่งลบเส้นทางหลักในการออกอินเตอร์เน็ตออก เพื่อที่จะใช้เส้นทางใหม่ที่ผ่าน AMPRNet IP44
/usr/sbin/ipsec up L2TP-PSK คือคำสั่งที่ให้ L2TP เริ่มทำงาน
/usr/bin/echo “c myvpn” > /var/run/xl2tpd/l2tp-control คือคำสั่งที่ทำให้ ppp0 ซึ่งเป็นของ AMPRNet IP44 active หรือเริ่มทำงาน

ในการ copy แล้วมาคลิ๊กขวาเพื่อวางใน putty อาจจะต้อง copy ทีละบรรทัดนะครับ เพราะบางครั้งวางไปแล้วอาจจะไม่ตรงตามที่เราต้องการ หรืออาจจะต้องมีการจัดบรรทัดใหม่ให้เหมือนภาพด้านล่าง

ภาพตัวอย่างหลังจากเพิ่ม script ไปในไฟล์ rc.local แล้ว

หลังจากที่เพิ่มข้อมูลเข้าไปแล้วก็ทำการบันทึกโดยการกด Ctrl+O และ Ctrl+X เพื่อออกจากการแก้ไขแล้วทำการ reboot ระบบ หลังจากระบบ boot ขึ้นมาแล้วก็ใช้ putty เข้าไปทำการเช็คด้วยคำสั่ง route จะเห็นว่ามี Interface ppp0 ปรากฏอยู่ ซึ่งก็หมายความว่า ณ ตอนนี้ Raspberry pi ตัวนี้ใช้อินเตอร์เน็ต AMPRNet IP44 อยู่นั่นเอง

ภาพตัวอย่างการใช้คำสั่ง route เพื่อดูตารางเส้นทางวิ่งของข้อมูล

เทคนิคการใส่ script ไว้ในไฟล์ /etc/rc.local นี้ เป็นเพียงการสั่งให้มีการเชื่อมต่อ L2TP VPN ทุกครั้งที่มีการ boot ระบบขึ้นมาเท่านั้น ไม่ได้มีการตรวจสอบว่า L2TP VPN ที่เราเชื่อมต่อนั้นหลุดจากระบบหรือไม่ และไม่ได้มีการสั่งให้เชื่อมต่อใหม่

การทำ Script เพื่อให้มีการตรวจสอบ L2TP VPN เอง

อีกวิธีที่ผมทำขึ้นคือใช้การสั่งให้มีการเช็ค L2TP VPN ว่ายังทำงานอยู่หรือไม่ ถ้าไม่มีการเชื่อมต่อหรือไม่ได้หมายเลข IP44 มาก็จะตรวจสอบอินเตอร์เน็ตก่อนว่าปกติหรือไม่ ถ้าอินเตอร์เน็ตปกติ ก็จะสั่งให้มีการเชื่อมต่อ L2TP VPN ใหม่อีกครั้ง รวมถึงการสั่งให้มีการ restart service บางอย่างด้วยเช่น สั่งให้มีการ restart service svxlink ซึ่งเป็นบริการที่ใช้ทำระบบ Echolink ให้ login เข้าด้วยสิทธิ์ของ root นะครับ หรือถ้าไม่ได้เข้าด้วยสิทธิ์ของ root ก็ต้องใช้คำสั่ง sudo นำหน้าครับ

เริ่มจาก download script จากเว็บของ www.xlx822.com ครับ ให้ download ไว้ใน /root/ นะครับ

wget https://xlx822.com/download/check_ip44.sh -O /root/check_ip44.sh
ภาพตัวอย่างการใช้คำสั่งเพื่อ download script check_ip44.sh จาก xlx822.com

หลังจากที่ download มาแล้ว ใช้คำสั่ง ls -l /root/ เพื่อตรวจสอบว่ามีไฟล์อยู่หรือไม่ ถ้ามีไฟล์อยู่ก็ทำขั้นตอนต่อไปก็คือการเปลี่ยนโหมดให้เป็นไฟล์แบบ run command ได้

chmod 755 /root/check_ip44.sh

ใช้คำสั่ง ls -l /root/check_ip44.sh อีกครั้ง เพื่อตรวจสอบว่าสิทธิ์ของไฟล์เป็นแบบ run ได้หรือไม่

ภาพตัวอย่างแสดงสิทธิ์ของไฟล์ที่จะเป็น rwxr-xr-x หลังจากใช้คำสั่ง chmod

ใน scirpt จะมีการตั้งค่าบางอย่าง อาจจะเข้าไปตรวจสอบการตั้งค่าภายใน script ได้โดยใช้คำสั่ง pico เพื่อแก้ไข

pico /root/check_ip44.sh
ภาพตัวอย่างการใช้คำสั่ง pico เข้าดู script
ภาพตัวอย่างการตั้งค่าเพิ่มเติมใน script

หากมีการแก้ไข script ก็ให้กดปุ่ม Ctrl+O แล้ว Enter เพื่อบันทึก และ Ctrl+X เพื่อออกจากการแก้ไข

ขณะนี้ script ของเราก็สามารถทำงานได้แล้ว ถ้าหากต้องการจะทดสอบ script ว่าทำงานหรือไม่ก็สามารถทำได้โดยระบุที่อยู่ของไฟล์ตามด้วยชื่อไฟล์ เช่น…

/root/check_ip44.sh
ภาพตัวอย่างการทดสอบ run script เพื่อทดสอบการทำงาน

จะเห็นว่าผลที่ได้คือ
ppp0 is up หมายความว่า L2TP VPN นั้นทำงานอยู่แล้ว
ppp0 is default gateway หมายความว่า อินเตอร์เน็ตปัจจุบันนั้นออกทาง L2TP VPN
ppp0 ip 44.159.12.86 ก็คือแสดงหมายเลข IP ปัจจุบันของ L2TP VPN นั่นเอง

ต่อไปจะเป็นการสั่งให้ script ของเราทำงานทุก ๆ 2 นาที หรือกี่นาทีตามแต่ต้องการ โดยการแก้ไขระบบทำงานอัตโนมัติของระบบปฏิบัติการ Linux ก็คือการใช้คำสั่ง crontab -e เพื่อเข้าไปเพิ่มคำสั่ง

crontab -e
ภาพตัวอย่างการใช้คำสั่ง crontab -e เพื่อเพิ่มคำสั่งให้ทำงานอัตโนมัติ

หากระบบมีการถามว่าจะใช้โปรแกรมอะไรเป็นตัวแก้ไข สังเกตุง่าย ๆ จะมีตัวเลขขึ้นมาให้เลือก ก็ให้เลือกเป็น 1 นะครับ แต่ถ้าเคยเลือกแล้วระบบจะไม่ถามอีก

ภาพตัวอย่างการตั้งค่าเพื่อให้มีการ run script ทุก ๆ 2 หรือกี่นาทีก็ได้

หลังจากแก้ไขแล้วก็ทำการบันทึกโดยการกด Ctrl+O แล้วกด Enter เพื่อบันทึกและ Ctrl+X เพื่อออกจากการแก้ไข หลังจากออกจากการแก้ไขแล้วระบบก็จะตอบกลับมาว่ามีการติดตั้ง crontab เข้าไป

ภาพตัวอย่างการตอบกลับจากระบบว่าเรามีการติดตั้ง crontab เข้าไปใหม่

เนื่องจากในการนำไปใช้งานจริงสามารถประยุกต์ใช้ได้กับหลาย ๆ ระบบ เช่น Pi-Star, AMBE Server, DVSwitch Server, Allstarlink, Echolink หรือเป็นระบบ Debian ที่ติดตั้งบน PC แต่ละระบบก็อาจจะมีบางจุดแตกต่างกันออกไป ซึ่งหากติดตั้งแล้วพบปัญหาสามารถสอบถามที่ผม HS2BMI ผ่านทาง Line ID : aisfttx หรือ scan QRCode ก็ได้ครับ

QR Code Line ของ HS2BMI

--

--