15 ຕົວຢ່າງ ຄຳ ສັ່ງ Sockstat ທີ່ມີປະໂຫຍດຕົວຢ່າງເພື່ອຊອກຫາ Ports ທີ່ເປີດຢູ່ໃນ FreeBSD


Sockstat ແມ່ນອຸປະກອນບັນທັດທີ່ສາມາດປັບປ່ຽນໄດ້ເຊິ່ງໃຊ້ ສຳ ລັບການສະແດງເຄືອຂ່າຍແລະລະບົບທີ່ເປີດເຕົ້າຮັບໃນ FreeBSD. ຕົ້ນຕໍ, ຄຳ ສັ່ງ sockstat ແມ່ນຖືກຕິດຕັ້ງໂດຍຄ່າເລີ່ມຕົ້ນໃນ FreeBSD ແລະມັນຖືກ ນຳ ໃຊ້ທົ່ວໄປໃນການສະແດງຊື່ຂອງຂະບວນການທີ່ໄດ້ເປີດພອດເຄືອຂ່າຍແນ່ນອນໃນລະບົບ FreeBSD.

ເຖິງຢ່າງໃດກໍ່ຕາມ, sockstat ຍັງສາມາດລາຍຊື່ເຕົ້າທີ່ເປີດໂດຍອີງໃສ່ສະບັບໂປໂຕຄອນ (ທັງສອງລຸ້ນ IP), ກ່ຽວກັບສະຖານະຂອງການເຊື່ອມຕໍ່ແລະສິ່ງທີ່ພອດ daemon ຫຼືໂປແກຼມໃດ ໜຶ່ງ ເຊື່ອມໂຍງແລະຟັງ.

ມັນຍັງສາມາດສະແດງເຕົ້າຮັບການສື່ສານຂັ້ນຕອນ, ໂດຍປົກກະຕິທີ່ຮູ້ກັນວ່າເຕົ້າຮັບໂດເມນ Unix ຫຼື IPC. ຄໍາສັ່ງ Sockstat ປະສົມປະສານກັບຜົນປະໂຫຍດທີ່ງຸ່ມງ່າມສະແດງໃຫ້ເຫັນວ່າເປັນເຄື່ອງມືທີ່ມີປະສິດທິພາບສໍາລັບເຄືອຂ່າຍທ້ອງຖິ່ນ.

ມັນສາມາດຫລຸດຜ່ອນຜົນ ສຳ ລັບການເຊື່ອມຕໍ່ທີ່ເປີດໂດຍອີງໃສ່ຜູ້ໃຊ້ທີ່ເປັນເຈົ້າຂອງຊັອກເກັດ, ເຄື່ອງບັນຍາຍເອກະສານຂອງເຕົ້າສຽບໃນເຄືອຂ່າຍຫລື PID ຂອງຂະບວນການທີ່ເປີດເຕົ້າຮັບ.

ໃນຄູ່ມືນີ້ພວກເຮົາຈະໄດ້ບອກບາງຕົວຢ່າງການ ນຳ ໃຊ້ທົ່ວໄປ, ແຕ່ຍັງມີປະສິດທິພາບຫລາຍກ່ຽວກັບລະບົບປະຕິບັດການໃນເຄືອຂ່າຍ ຄຳ ສັ່ງ sockstat ໃນ FreeBSD.

<

  • ຄູ່ມືການຕິດຕັ້ງ FreeBSD 11.1
  • 1. ລົງທະບຽນທຸກ Port ທີ່ເປີດຢູ່ໃນ FreeBSD

    ການປະຕິບັດແບບງ່າຍດາຍໂດຍບໍ່ມີຕົວເລືອກຫຼືສັບປ່ຽນໃດໆ, ຄຳ ສັ່ງ sockstat ຈະສະແດງທຸກບ່ອນທີ່ເປີດຢູ່ໃນລະບົບ FreeBSD, ດັ່ງທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້.

    # sockstat
    

    ຄຸນຄ່າທີ່ສະແດງໃນຜົນຜະລິດຂອງ sockstat ແມ່ນໄດ້ອະທິບາຍໄວ້ວ່າ:

    • ຜູ້ໃຊ້: ເຈົ້າຂອງ (ບັນຊີຜູ້ໃຊ້) ຂອງຊັອກເກັດ.
    • COMMAND: ຄຳ ສັ່ງເຊິ່ງເປີດດ້ວຍເຕົ້າຮັບ.
    • PID: ID ຂັ້ນຕອນຂອງ ຄຳ ສັ່ງທີ່ເປັນເຈົ້າຂອງຊັອກເກັດ.
    • FD: ໝາຍ ເລກເອກະສານຂອງຊັອກເກັດ.
    • ໂປໂມຊັ່ນ: ໂປໂຕຄອນການຂົນສົ່ງ (ໂດຍທົ່ວໄປແມ່ນ TCP/UDP) ທີ່ກ່ຽວຂ້ອງກັບຊັອກເກັດຫຼືຊັອກເກັດທີ່ເປີດຢູ່ໃນກໍລະນີທີ່ເຕົ້າຮັບໂດເມນ unix (datagram, stream ຫຼື seqpac) ສຳ ລັບເຕົ້າຮັບ UNIX.
    • ພື້ນທີ່ຢູ່ໃນສະຖານທີ່: ມັນສະແດງທີ່ຢູ່ IP ຂອງທ້ອງຖິ່ນ ສຳ ລັບເຕົ້າຮັບ IP ທີ່ອີງໃສ່. ໃນກໍລະນີຂອງເຕົ້າຮັບ Unix ມັນເປັນຕົວແທນຂອງ endpoint filename ທີ່ຕິດກັບເຕົ້າຮັບ. ເຄື່ອງ ໝາຍ ບອກ “ ??” ໝາຍ ຄວາມວ່າຈຸດຈົບຂອງເຕົ້າຮັບບໍ່ສາມາດຖືກຮັບຮູ້ຫລືສ້າງຕັ້ງຂຶ້ນ.
    • FOREIGN ADDRESS: ທີ່ຢູ່ IP ທີ່ຢູ່ຫ່າງໄກສອກຫຼີກທີ່ເຊື່ອມຕໍ່ກັບຊັອກເກັດ.

    2. ລາຍຊື່ Port Listening ຫຼືເປີດທີ່ Port ໃນ FreeBSD

    ປະຕິບັດດ້ວຍທຸງ -l , ຄຳ ສັ່ງ sockstat ຈະສະແດງເຕົ້າຮັບຟັງທັງ ໝົດ ທີ່ເປີດຢູ່ໃນລະບົບເຄືອຂ່າຍແລະທຸກບ່ອນທີ່ເປີດໂດເມນ unix ຫຼືທໍ່ຊື່ທີ່ກ່ຽວຂ້ອງກັບການປະມວນຜົນຂໍ້ມູນທ້ອງຖິ່ນບາງຊະນິດໃນລະບົບ.

    # sockstat -l
    

    3. ລົງລາຍຊື່ Port IPv4 ທີ່ເປີດຢູ່ໃນ FreeBSD

    ເພື່ອສະແດງທຸກສິ່ງທຸກຢ່າງທີ່ເປີດໃສ່ເຕົ້າ ສຳ ລັບໂປໂຕຄອນ IPv4 ເທົ່ານັ້ນ, ໃຫ້ອອກ ຄຳ ສັ່ງດ້ວຍທຸງ -4 , ດັ່ງທີ່ໄດ້ແນະ ນຳ ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້.

    # sockstat -4
    

    4. ລົງລາຍຊື່ Port IPv6 ທີ່ເປີດຢູ່ໃນ FreeBSD

    ຄ້າຍຄືກັບລຸ້ນ IPv4, ທ່ານຍັງສາມາດສະແດງເຕົ້າຮັບເຄືອຂ່າຍທີ່ເປີດຢູ່ ສຳ ລັບ IPv6 ເທົ່ານັ້ນ, ໂດຍການອອກ ຄຳ ສັ່ງດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.

    # sockstat -6
    

    5. ລົງທະບຽນ TCP ຫຼື UDP ທີ່ເປີດຢູ່ໃນ FreeBSD

    ເພື່ອສະແດງເຕົ້າຮັບເຄືອຂ່າຍໂດຍອີງໃສ່ໂປໂຕຄອນເຄືອຂ່າຍທີ່ລະບຸໄວ້ເຊັ່ນ TCP ຫຼື UDP, ໃຫ້ໃຊ້ທຸງ -P ຕາມດ້ວຍຊື່ການໂຕ້ຖຽງຂອງໂປໂຕຄອນ.

    ຊື່ໂປໂຕຄອນສາມາດພົບໄດ້ໂດຍການກວດກາເນື້ອຫາຂອງເອກະສານ/etc/protocols. ໃນປະຈຸບັນ, ໂປໂຕຄອນ ICMP ບໍ່ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ຈາກເຄື່ອງມື sockstat.

    # sockstat -P tcp
    
    # sockstat -P udp
    

    ຕ່ອງໂສ້ໂປໂຕຄອນທັງສອງ.

    # sockstat –P tcp,udp
    

    6. ລົງທະບຽນ TCP ແລະ UDP Port Port ສະເພາະ

    ຖ້າທ່ານຕ້ອງການສະແດງທຸກຊິ້ນທີ່ໃຊ້ TCP ຫຼື UDP IP ທີ່ເປີດ, ອີງໃສ່ ໝາຍ ເລກພອດທ້ອງຖິ່ນຫລືຫ່າງໄກສອກຫຼີກ, ໃຊ້ທຸງ ຄຳ ສັ່ງແລະ syntax ຂ້າງລຸ່ມ, ດັ່ງທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້.

    # sockstat -P tcp -p 443             [Show TCP HTTPS Port]
    # sockstat -P udp -p 53              [Show UDP DNS Port] 
    # sockstat -P tcp -p 443,53,80,21    [Show Both TCP and UDP]
    

    ລາຍຊື່ບັນດາທ່າເຮືອທີ່ເປີດແລະເຊື່ອມຕໍ່ໃນ FreeBSD

    ເພື່ອສະແດງທຸກຊິ້ນທີ່ເປີດແລະເຊື່ອມຕໍ່, ໃຊ້ທຸງ -c . ດັ່ງທີ່ສະແດງຢູ່ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ທ່ານສາມາດລາຍຊື່ທຸກໆເຕົ້າສຽບ HTTPS ຫຼືເຕົ້າສຽບ TCP ທີ່ເຊື່ອມຕໍ່ໂດຍການອອກ ຄຳ ສັ່ງ

    # sockstat -P tcp -p 443 -c
    # sockstat -P tcp -c
    

    8. ລົງລາຍຊື່ບັນດາ Port Porting ທີ່ຢູ່ໃນ FreeBSD

    ເພື່ອລົງລາຍເຊັນເຕົ້າຮັບ TCP ທີ່ເປີດຢູ່ໃນສະຖານະການຟັງແມ່ນເພີ່ມເຕີມທຸງ -l ແລະ -s , ດັ່ງທີ່ສະແດງຢູ່ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້. ເປັນໂປໂຕຄອນທີ່ບໍ່ສາມາດເຊື່ອມຕໍ່ໄດ້, UDP ບໍ່ຮັກສາຂໍ້ມູນກ່ຽວກັບສະພາບຂອງການເຊື່ອມຕໍ່.

    UDP ເປີດເຕົ້າຮັບບໍ່ສາມາດສະແດງໂດຍໃຊ້ສະຖານະຂອງມັນ, ເພາະວ່າໂປໂຕຄອນ udp ໃຊ້ datagrams ເພື່ອສົ່ງ/ຮັບຂໍ້ມູນແລະບໍ່ມີກົນໄກສ້າງເພື່ອ ກຳ ນົດສະຖານະຂອງການເຊື່ອມຕໍ່.

    # sockstat -46 -l -s
    

    9. ບອກຊັອກ Unix ແລະທໍ່ຊື່

    ເຕົ້າຮັບໂດເມນ Unix, ພ້ອມທັງຮູບແບບອື່ນໆຂອງການສື່ສານລະຫວ່າງຂັ້ນທ້ອງຖິ່ນ, ເຊັ່ນວ່າທໍ່ທີ່ມີຊື່, ສາມາດສະແດງໂດຍ ຄຳ ສັ່ງ sockstat ໂດຍການໃຊ້ທຸງ -u , ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບຂ້າງລຸ່ມນີ້.

    # sockstat -u
    

    10. ບັນຊີ Ports ເປີດໂດຍການສະ ໝັກ ໃນ FreeBSD

    ຜົນຜະລິດ ຄຳ ສັ່ງ Sockstat ສາມາດຖືກກັ່ນຕອງຜ່ານຜົນປະໂຫຍດ grep ເພື່ອສະແດງລາຍຊື່ຂອງພອດທີ່ເປີດໂດຍ ຄຳ ຮ້ອງສະ ໝັກ ຫຼື ຄຳ ສັ່ງສະເພາະ.

    ສົມມຸດວ່າທ່ານຕ້ອງການທີ່ຈະລົງລາຍຊື່ທຸກໆຊັອກເກັດທີ່ກ່ຽວຂ້ອງກັບເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Nginx, ທ່ານສາມາດອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອບັນລຸວຽກງານ.

    # sockstat -46 | grep nginx
    

    ເພື່ອສະແດງພຽງແຕ່ຊັອກເກັດທີ່ເຊື່ອມຕໍ່ທີ່ກ່ຽວຂ້ອງກັບເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Nginx, ອອກຄໍາສັ່ງຕໍ່ໄປນີ້.

    # sockstat -46 -c| grep nginx
    

    11. ລາຍຊື່ໂປໂຕຄອນທີ່ເຊື່ອມຕໍ່ HTTPS

    ທ່ານສາມາດລາຍຊື່ທຸກໆເຕົ້າຮັບທີ່ເຊື່ອມຕໍ່ທີ່ກ່ຽວຂ້ອງກັບໂປໂຕຄອນ HTTPS ຄຽງຄູ່ກັບສະຖານະຂອງແຕ່ລະເຊື່ອມຕໍ່ໂດຍການເຮັດວຽກຕາມ ຄຳ ສັ່ງລຸ່ມນີ້.

    # sockstat -46 -s -P TCP -p 443 -c
    

    12. ບອກລາຍຊື່ເຕົ້າສຽບ HTTP ຫ່າງໄກສອກຫຼີກ

    ເພື່ອລາຍຊື່ທຸກໆຊັອກຫ່າງໄກສອກຫຼີກທີ່ກ່ຽວຂ້ອງກັບໂປໂຕຄອນ HTTP, ທ່ານສາມາດ ດຳ ເນີນການປະສົມ ຄຳ ສັ່ງ ໜຶ່ງ ຢ່າງຕໍ່ໄປນີ້.

    # sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
    # sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr
    

    13. ຊອກຫາຂໍ້ຮຽກຮ້ອງ HTTP ທີ່ສູງທີ່ສຸດໂດຍທີ່ຢູ່ IP

    ໃນກໍລະນີທີ່ທ່ານຕ້ອງການຊອກຫາວ່າມີການເຊື່ອມຕໍ່ HTTP ຈຳ ນວນເທົ່າໃດທີ່ຮ້ອງຂໍໂດຍທີ່ຢູ່ IP ຫ່າງໄກສອກຫຼີກ, ໃຫ້ອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້. ຄໍາສັ່ງນີ້ສາມາດເປັນປະໂຫຍດຫຼາຍໃນກໍລະນີທີ່ທ່ານຕ້ອງການກໍານົດວ່າເຄື່ອງແມ່ຂ່າຍເວັບຂອງທ່ານຢູ່ພາຍໃຕ້ການໂຈມຕີ DDOS ບາງຊະນິດ. ໃນກໍລະນີທີ່ມີຄວາມສົງໃສ, ທ່ານຄວນສືບສວນກ່ຽວກັບທີ່ຢູ່ IP ດ້ວຍອັດຕາການຮ້ອງຂໍສູງສຸດ.

    # sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr
    

    14. ລົງລາຍຊື່ DNS Opened Sockets

    ຖ້າທ່ານໄດ້ ກຳ ຫນົດຄ່າເຊີບເວີ້ແລະສົ່ງຕໍ່ DNS server ທີ່ສະຖານທີ່ຂອງທ່ານເພື່ອໃຫ້ບໍລິການລູກຄ້າພາຍໃນຜ່ານໂປໂຕຄອນການຂົນສົ່ງ TCP ແລະທ່ານຕ້ອງການສະແດງລາຍຊື່ຂອງຊັອກເກັດທັງ ໝົດ
    ເປີດໂດຍຜູ້ແກ້ໄຂ, ພ້ອມກັບສະຖານະຂອງແຕ່ລະເຊື່ອມຕໍ່ເຕົ້າຮັບ, ປະຕິບັດ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # sockstat -46 -P tcp –p 53 -s
    

    15. ສອບຖາມ TCP DNS ໃນ Domain Local

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

    # dig +tcp  www.domain.com  @127.0.0.1
    

    ຫມົດເທົ່ານີ້! ຄຽງຄູ່ກັບການໃຊ້ລະບົບສາຍ ຄຳ ສັ່ງ lsof, ເສັ້ນ ຄຳ ສັ່ງ sockstat ແມ່ນປະໂຫຍດທີ່ມີປະສິດທິພາບທີ່ໃຊ້ ສຳ ລັບການຊອກຫາຂໍ້ມູນໃນເຄືອຂ່າຍແລະແກ້ໄຂບັນຫາຫລາຍໆດ້ານຂອງ FreeBSD ການຕິດຕັ້ງເຄືອຂ່າຍແລະການເຮັດວຽກທີ່ກ່ຽວຂ້ອງກັບເຄືອຂ່າຍ.

    ຄູ່ຮ່ວມງານ ຄຳ ສັ່ງ FreeBSD sockstat ໃນ Linux ແມ່ນຕົວແທນໂດຍ netstat ຫຼື ຄຳ ສັ່ງ ss ໃໝ່. ເຊື່ອຫລືບໍ່, ອີງໃສ່ຜົນປະໂຫຍດຂອງ sockstat, ທ່ານສາມາດຊອກຫາໂປແກຼມທີ່ຄ້າຍຄືກັນທີ່ຖືກພັດທະນາ ສຳ ລັບ Android OS, ຊື່ວ່າ SockStat - Simple Netstat GUI.