GoTTY - ແບ່ງປັນ Linux Terminal (TTY) ຂອງທ່ານເປັນ Web Application


GoTTY ແມ່ນເຄື່ອງມືບັນທັດເສັ້ນ ຄຳ ສັ່ງແບບງ່າຍໆຂອງ GoLang ເຊິ່ງຊ່ວຍໃຫ້ທ່ານສາມາດແບ່ງປັນສະຖານີຂອງທ່ານ (TTY) ເປັນໂປແກຼມໃຊ້ເວັບໄດ້. ມັນປ່ຽນເຄື່ອງມືບັນທັດຄໍາສັ່ງເຂົ້າໄປໃນໂປແກຼມເວັບຕ່າງໆ.

ມັນໃຊ້ງານ emulator terminal (hterm) ຂອງ Chrome OS ເພື່ອປະຕິບັດສະຖານທີ່ JavaScript ທີ່ໃຊ້ໃນ browser ຕ່າງໆ. ແລະສິ່ງທີ່ ສຳ ຄັນ, GoTTY ແມ່ນໃຊ້ server socket server ໂດຍພື້ນຖານແລ້ວຈະໂອນຜົນຜະລິດຈາກ TTY ໃຫ້ກັບລູກຄ້າແລະໄດ້ຮັບການປ້ອນຂໍ້ມູນຈາກລູກຄ້າ (ນັ້ນແມ່ນຖ້າການປ້ອນຂໍ້ມູນຈາກລູກຄ້າຖືກອະນຸຍາດ) ແລະສົ່ງຕໍ່ໄປທີ່ TTY.

ສະຖາປັດຕະຍະ ກຳ ຂອງມັນ (hterm + web socket ຄວາມຄິດ) ໄດ້ຮັບແຮງບັນດານໃຈຈາກໂປແກຼມ Wetty ເຊິ່ງຊ່ວຍໃຫ້ຢູ່ປາຍທາງຜ່ານ HTTP ແລະ HTTPS.

ທ່ານຄວນມີສະພາບແວດລ້ອມ GoLang (Go Programming Language) ຕິດຕັ້ງໃນ Linux ເພື່ອໃຊ້ງານ GoTTY.

ວິທີການຕິດຕັ້ງ GoTTY ໃນ Linux Systems

ຖ້າທ່ານມີສະພາບແວດລ້ອມ GoLang ທີ່ເຮັດວຽກຢູ່ແລ້ວ, ໃຫ້ແລ່ນ ຄຳ ສັ່ງ go get ດ້ານລຸ່ມເພື່ອຕິດຕັ້ງມັນ:

# go get github.com/yudai/gotty

ຄຳ ສັ່ງຂ້າງເທິງນີ້ຈະຕິດຕັ້ງຖານສອງແບບ GoTTY ໃນຕົວປ່ຽນແປງສະພາບແວດລ້ອມຂອງ GOBIN ຂອງທ່ານ, ລອງກວດເບິ່ງວ່າມັນເປັນແນວນັ້ນບໍ:

# ls $GOPATH/bin/

ວິທີການໃຊ້ GoTTY ໃນ Linux

ເພື່ອເຮັດວຽກມັນ, ທ່ານສາມາດໃຊ້ GOBIN env ຕົວແປແລະ ຄຳ ສັ່ງຄຸນນະສົມບັດ ສຳ ເລັດໂດຍອັດຕະໂນມັດດັ່ງຕໍ່ໄປນີ້:

# $GOBIN/gotty

ອື່ນ, ແລ່ນ GoTTY ຫຼືໂປແກຼມ Go ອື່ນໆໂດຍບໍ່ຕ້ອງພິມເສັ້ນທາງເຕັມໄປຫາຖານສອງ, ເພີ່ມຕົວແປ GOBIN ຂອງທ່ານເຂົ້າໃນ PATH ໃນແຟ້ມ ~/.profile ໂດຍໃຊ້ ຄຳ ສັ່ງສົ່ງອອກຂ້າງລຸ່ມນີ້:

export PATH="$PATH:$GOBIN"

ບັນທຶກເອກະສານແລະປິດມັນ. ຫຼັງຈາກນັ້ນແຫຼ່ງທີ່ມາຂອງເອກະສານທີ່ຈະມີຜົນກະທົບການປ່ຽນແປງຂ້າງເທິງ:

# source ~/.profile

syntax ທົ່ວໄປ ສຳ ລັບການໃຊ້ງານ ຄຳ ສັ່ງ GoTTY ແມ່ນ:

Usage: gotty [options] <Linux command here> [<arguments...>]

ດຽວນີ້ໃຊ້ GoTTY ດ້ວຍ ຄຳ ສັ່ງຕ່າງໆເຊັ່ນ ຄຳ ສັ່ງ df ເພື່ອເບິ່ງພື້ນທີ່ການແບ່ງປັນແຜ່ນຂອງລະບົບແລະການ ນຳ ໃຊ້ຈາກເວັບບຼາວເຊີ:

# gotty df -h

GoTTY ຈະເລີ່ມຕົ້ນ web server ຢູ່ port 8080 ໂດຍຄ່າເລີ່ມຕົ້ນ. ຫຼັງຈາກນັ້ນເປີດ URL: http://127.0.0.1:8080/ ໃນ browser ຂອງທ່ານແລະທ່ານຈະເຫັນ ຄຳ ສັ່ງທີ່ ກຳ ລັງແລ່ນຄືກັບວ່າມັນ ກຳ ລັງແລ່ນຢູ່ປາຍຂອງທ່ານ:

ວິທີການປັບແຕ່ງ GoTTY ໃນ Linux

ທ່ານສາມາດປ່ຽນແປງຕົວເລືອກເລີ່ມຕົ້ນແລະປາຍທາງຂອງທ່ານ (hterm) ໃນເອກະສານໂປຣໄຟລ໌ ~/.gotty , ມັນຈະໂຫລດໄຟລ໌ນີ້ໂດຍຄ່າເລີ່ມຕົ້ນໃນກໍລະນີທີ່ມັນມີຢູ່.

ນີ້ແມ່ນເອກະສານການປັບແຕ່ງຫຼັກໆທີ່ອ່ານໂດຍ ຄຳ ສັ່ງ gotty, ດັ່ງນັ້ນ, ສ້າງມັນດັ່ງຕໍ່ໄປນີ້:

# touch ~/.gotty

ແລະຕັ້ງຄ່າທີ່ຖືກຕ້ອງຂອງທ່ານເອງ ສຳ ລັບຕົວເລືອກການຕັ້ງຄ່າ (ຊອກຫາຕົວເລືອກ config ທັງ ໝົດ ທີ່ນີ້) ເພື່ອປັບແຕ່ງ GoTTY ຕົວຢ່າງ:

// Listen at port 9000 by default
port = "9000"

// Enable TSL/SSL by default
enable_tls = true

// hterm preferences
// Smaller font and a little bit bluer background color
preferences {
    font_size = 5,
    background_color = "rgb(16, 16, 32)"
}

ທ່ານສາມາດຕັ້ງໄຟລ໌ index.html ຂອງທ່ານເອງໂດຍໃຊ້ຕົວເລືອກ --index ຈາກເສັ້ນ ຄຳ ສັ່ງ:

# gotty --index /path/to/index.html uptime

ວິທີການໃຊ້ຄຸນລັກສະນະຄວາມປອດໄພໃນ GoTTY

ເນື່ອງຈາກວ່າ GoTTY ບໍ່ໄດ້ໃຫ້ຄວາມປອດໄພທີ່ ໜ້າ ເຊື່ອຖືໂດຍຄ່າເລີ່ມຕົ້ນ, ທ່ານ ຈຳ ເປັນຕ້ອງໃຊ້ຄຸນລັກສະນະຄວາມປອດໄພບາງຢ່າງທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້.

ໃຫ້ສັງເກດວ່າ, ໂດຍຄ່າເລີ່ມຕົ້ນ, GoTTY ບໍ່ອະນຸຍາດໃຫ້ລູກຄ້າພິມການປ້ອນຂໍ້ມູນເຂົ້າໃນ TTY, ມັນພຽງແຕ່ຊ່ວຍໃຫ້ການປັບຂະ ໜາດ ຂອງ ໜ້າ ຕ່າງ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ທ່ານສາມາດໃຊ້ຕົວເລືອກ -w ຫຼື --permit-write ເພື່ອອະນຸຍາດໃຫ້ລູກຄ້າຂຽນໄປທີ່ TTY, ເຊິ່ງບໍ່ໄດ້ຖືກແນະ ນຳ ຍ້ອນໄພຂົ່ມຂູ່ຕໍ່ຄວາມປອດໄພຕໍ່ກັບເຊີບເວີ.

ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະໃຊ້ບັນນາທິການເສັ້ນ ຄຳ ສັ່ງ vi ເພື່ອເປີດຟາຍ fossmint.txt ເພື່ອດັດແກ້ໃນເວັບ browser:

# gotty -w vi fossmint.txt

ຂ້າງລຸ່ມນີ້ແມ່ນອິນເຕີເຟດ vi ທີ່ເຫັນຈາກຕົວທ່ອງເວັບ (ໃຊ້ ຄຳ ສັ່ງ vi ທີ່ນີ້ຕາມປົກກະຕິ):

ພະຍາຍາມກະຕຸ້ນກົນໄກການກວດສອບຂັ້ນພື້ນຖານ, ເຊິ່ງລູກຄ້າຈະຕ້ອງໄດ້ໃສ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານທີ່ລະບຸໄວ້ເພື່ອເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍຂອງ GoTTY.

ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ຈະ ຈຳ ກັດການເຂົ້າເຖິງລູກຄ້າໂດຍໃຊ້ຕົວເລືອກ -c ເພື່ອຂໍໃຫ້ຜູ້ໃຊ້ມີຂໍ້ມູນປະ ຈຳ ຕົວ (ຊື່ຜູ້ໃຊ້: ທົດສອບແລະລະຫັດຜ່ານ: @ 67890):

# gotty -w -p "9000" -c "test:@67890" glances

ອີກວິທີ ໜຶ່ງ ຂອງການ ຈຳ ກັດການເຂົ້າເຖິງເຊີຟເວີແມ່ນໂດຍໃຊ້ຕົວເລືອກ -r . ນີ້, GoTTY ຈະສ້າງ URL ແບບສຸ່ມເພື່ອໃຫ້ຜູ້ໃຊ້ທີ່ຮູ້ຈັກ URL ສາມາດເຂົ້າເຖິງເຊີບເວີໄດ້.

ນອກຈາກນີ້ຍັງໃຊ້ຕົວເລືອກ "ຮູບແບບ" GoTTY - {{. ຄອມພິວເຕີ້}} ({{. ຊື່)}) "ທາງເລືອກເພື່ອ ກຳ ນົດຫົວຂໍ້ການໂຕ້ຕອບຂອງຕົວທ່ອງເວັບແລະ ຄຳ ສັ່ງ glances ແມ່ນໃຊ້ເພື່ອສະແດງສະຖິຕິການກວດສອບລະບົບ:

# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

ຕໍ່ໄປນີ້ແມ່ນຜົນຂອງ ຄຳ ສັ່ງຂ້າງເທິງດັ່ງທີ່ເຫັນຈາກອິນເຕີເຟດ browser:

ເນື່ອງຈາກວ່າໂດຍຄ່າເລີ່ມຕົ້ນ, ການເຊື່ອມຕໍ່ທັງ ໝົດ ລະຫວ່າງ server ແລະລູກຄ້າບໍ່ຖືກເຂົ້າລະຫັດ, ເມື່ອທ່ານສົ່ງຂໍ້ມູນລັບຜ່ານ GoTTY ເຊັ່ນຂໍ້ມູນປະ ຈຳ ຕົວຂອງຜູ້ໃຊ້ຫຼືຂໍ້ມູນອື່ນໆ, ທ່ານຕ້ອງໃຊ້ລະຫັດ -t ຫຼື - -tls ຕົວເລືອກທີ່ຊ່ວຍໃຫ້ TLS/SSL ໃນການປະຊຸມ:

ໂດຍທົ່ວໄປ GoTTY ຈະອ່ານເອກະສານໃບຢັ້ງຢືນ ~/.gotty.crt ແລະເອກະສານ ສຳ ຄັນ ~/.gotty.key , ດັ່ງນັ້ນ, ເລີ່ມຕົ້ນໂດຍການສ້າງໃບຢັ້ງຢືນທີ່ເຊັນດ້ວຍຕົນເອງເຊັ່ນດຽວກັນ ເປັນເອກະສານທີ່ ສຳ ຄັນໂດຍໃຊ້ ຄຳ ສັ່ງ openssl ຂ້າງລຸ່ມນີ້ (ຕອບ ຄຳ ຖາມທີ່ຖາມເພື່ອສ້າງໃບຢັ້ງຢືນແລະແຟ້ມຫຼັກ):

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

ຫຼັງຈາກນັ້ນໃຫ້ໃຊ້ GoTTY ດ້ວຍວິທີທີ່ປອດໄພດ້ວຍ SSL/TLS ເປີດໃຊ້ງານດັ່ງຕໍ່ໄປນີ້:

# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

ທ່ານສາມາດໃຊ້ ຄຳ ສັ່ງ glances (ໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ຕິດຕັ້ງ tmux):

# gotty tmux new -A -s gotty glances 

ເພື່ອອ່ານເອກະສານ config ທີ່ແຕກຕ່າງກັນ, ໃຫ້ໃຊ້ຕົວເລືອກ "/ path/to/file" ເຊັ່ນ –config

# gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

ເພື່ອສະແດງລຸ້ນ GoTTY, ດຳ ເນີນການ ຄຳ ສັ່ງ:

# gotty -v 

ຢ້ຽມຢາມຫໍສະ ໝຸດ GoTTY GitHub ເພື່ອຊອກຫາຕົວຢ່າງການ ນຳ ໃຊ້ເພີ່ມເຕີມ: https://github.com/yudai/gotty

ຫມົດເທົ່ານີ້! ທ່ານໄດ້ລອງມັນແລ້ວບໍ? ທ່ານຊອກຫາ GoTTY ໄດ້ແນວໃດ? ແບ່ງປັນຄວາມຄິດຂອງທ່ານກັບພວກເຮົາຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.