Hide.me CLI เป็นไคลเอนต์ VPN สำหรับใช้กับ Archinture Ltd. Hide.me VPN บริการตามโปรโตคอล Wireguard คุณสมบัติของลูกค้ารวมถึง:
สิ่งที่ต้องทำ:
คุณสามารถโคลนที่เก็บนี้และเรียกใช้:
go build -o hide.me
อีกทางเลือกหนึ่งดาวน์โหลดบิลด์ล่าสุดจากส่วนเผยแพร่
ทรีต้นทางและการเผยแพร่ไบนารีมีการติดตั้งอย่างง่ายและสคริปต์การถอนการติดตั้ง Hide.me CLI ได้รับการติดตั้งในไดเรกทอรี /opt/hide.me นอกเหนือจากการคัดลอกไฟล์ hide.me ไปยัง /opt/hide.me ไม่มีการปรับเปลี่ยนระบบ
เมื่อตรวจพบการแจกแจงแบบใช้ SystemD ตัวติดตั้งจะเชื่อมโยงไฟล์หน่วยเทมเพลตซึ่งสามารถใช้ในการสร้างอินสแตนซ์การเชื่อมต่อ
คุณสามารถสร้างแพ็คเกจโดยใช้ pkgbuild ที่มีให้ในบรรจุภัณฑ์/archlinux/(ต้องใช้ git clone --recurse-submodules ) หรือจาก https://aur.archlinux.org/packages/hide-client/
เพื่อสร้าง:
makepkg && sudo pacman -U hide-client-0.9.1-1-any.pkg.tar.zst
โปรดทราบว่าแพ็คเกจ Archlinux จะเปลี่ยนตำแหน่งเริ่มต้นของไฟล์ที่ติดตั้งเป็น /usr/bin/hide.me สำหรับไบนารี, /etc/hide.me/accessToken.txt สำหรับ AccessToken, /usr/share/hide.me/CA.pem สำหรับใบรับรองและ /usr/lib/systemd/system/hide.me@service สำหรับหน่วย SystemD
Wireguard เป็นหนึ่งในโซลูชั่น VPN Tunneling ที่ปลอดภัยและง่ายที่สุดในอุตสาหกรรม เป็นเรื่องง่ายที่จะตั้งค่าและใช้งานตราบใดที่ไม่จำเป็นต้องมีการแลกเปลี่ยนคีย์สาธารณะ Wireguard ผ่านสื่อที่ไม่ปลอดภัย (เช่นอินเทอร์เน็ต) การแลกเปลี่ยนคีย์สาธารณะ Wireguard ใด ๆ อยู่นอกขอบเขตของข้อกำหนดของ Wireguard
งานที่ซับซ้อนของการแลกเปลี่ยนคีย์สาธารณะและการเจรจาต่อรองคีย์ลับเกี่ยวกับสื่อที่ไม่ปลอดภัยมักจะถูกจัดการโดย:
Hide.me การใช้งานของ Wireguard Leverages https (TLS) สำหรับการแลกเปลี่ยน:
การรับรองความถูกต้องสำหรับการดำเนินการทั้งหมดต้องใช้การเข้าถึงแบบ token Access-Token เป็นเพียงหยด binary ซึ่งเชื่อมโยงกับการเข้ารหัสกับบัญชี hide.me
การเชื่อมต่อกับเซิร์ฟเวอร์ hide.me VPN ได้รับการสร้างขึ้นในขั้นตอนเหล่านี้:
ในทางตรงกันข้ามกับโซลูชันอื่น ๆ อีกมากมาย Hide.me CLI ไม่ได้ใช้เทคโนโลยีไฟร์วอลล์ Linux ทุกประเภท (iptables, Nftables หรือ EBPF) แทนที่จะพึ่งพากรอบการกรอง IP ของ Linux'es, Hide.me CLI เลือกเส้นทางการรับส่งข้อมูลโดยการตั้งค่าตารางเส้นทางพิเศษและชุดของกฎฐานข้อมูลนโยบายการกำหนดเส้นทาง เส้นทาง Blackhole ในตารางการกำหนดเส้นทางดังกล่าวจะลดการจราจรทั้งหมดเว้นแต่จะตรงตามเงื่อนไขใดข้อหนึ่งต่อไปนี้:
โหมดการดำเนินงานนี้ทำให้ผู้ใช้สามารถกำหนดนโยบายไฟร์วอลล์ของตัวเองซึ่ง Hide.me CLI จะไม่รบกวน
คำแนะนำการใช้งานอาจพิมพ์โดยใช้ hide.me cli โดยไม่มีพารามิเตอร์ใด ๆ
Usage:
./hide.me [options...] <command> [host]
...
Hide.me CLI ส่วนต่อประสานผู้ใช้ค่อนข้างง่าย มีเพียงสามคำสั่ง:
command:
token - request an Access-Token (required for connect)
connect - connect to a vpn server
conf - generate a configuration file to be used with the -c option
categories - fetch and dump filtering category list
service - run in remotely controlled service mode
ในการเชื่อมต่อกับเซิร์ฟเวอร์ VPN จะต้องร้องขอการเข้าถึง Token จากเซิร์ฟเวอร์ VPN คำขอการเข้าถึงแบบ token จะออกโดยคำสั่ง โทเค็น อาจใช้การเข้าถึงที่ออกโดยเซิร์ฟเวอร์ใด ๆ เพื่อวัตถุประสงค์การตรวจสอบด้วยเซิร์ฟเวอร์ Hide.me VPN อื่น ๆ เมื่อเซิร์ฟเวอร์ออก token การเข้าถึงที่โทเค็นจะต้องถูกเก็บไว้ในไฟล์ ชื่อไฟล์เริ่มต้นสำหรับ Access-Token คือ "AccessToken.txt"
เมื่อมีการเข้าร่วมการเข้าถึงแล้วอาจใช้สำหรับการร้องขอ การเชื่อมต่อ โทเค็นการเข้าถึงเก่าได้รับการอัปเดตโดยอัตโนมัติ
Hide.me CLI ไม่จำเป็นต้องเรียกใช้พารามิเตอร์บรรทัดคำสั่ง แต่อาจใช้ไฟล์กำหนดค่าที่จัดรูปแบบ YAML เพื่อระบุตัวเลือกทั้งหมด ในการสร้างไฟล์การกำหนดค่าดังกล่าวอาจใช้คำสั่ง CONF
สำหรับวัตถุประสงค์ของการกรอง DNS (SmartGuard) รายการหมวดหมู่การกรองสามารถรับได้ด้วยคำสั่ง หมวดหมู่
Hide.me CLI สามารถเรียกใช้ในโหมด บริการ เมื่อเริ่มต้นในโหมดบริการ Hide.me CLI เพียงแค่เปิดอินเทอร์เฟซ REST สำหรับการควบคุม คอนโทรลเลอร์มีหน้าที่รับผิดชอบในการกำหนดค่าการเชื่อมต่อการเปิดใช้งานการฆ่าสวิตช์หรือการดำเนินการอื่น ๆ REST อินเตอร์เฟสฟังที่อยู่สามารถกำหนดค่าได้ผ่านตัวเลือก -CADDR
โปรดทราบว่ามีตัวเลือกไม่กี่ตัวที่สามารถกำหนดค่าได้ผ่านไฟล์การกำหนดค่าเท่านั้น ตัวเลือกดังกล่าวคือ:
host:
fqdn, short name or an IP address of a hide.me server
Required when the configuration file does not contain it
ชื่อโฮสต์ของจุดสิ้นสุดของ Hide.me Rest อาจถูกระบุเป็นชื่อโดเมนที่ผ่านการรับรองอย่างสมบูรณ์ (nl.hide.me), ชื่อสั้น (NL) หรือที่อยู่ IP ไม่มีการรับประกันว่าจุดสิ้นสุดที่เหลือจะตรงกับจุดสิ้นสุดของ Wireguard
-4 Use IPv4 tunneling only
จำกัด การดำเนินการโปรโตคอล IP ทั้งหมดเป็น IPv4 แม้ว่าเซิร์ฟเวอร์จะให้ที่อยู่ IPv4 และ IPv6 ที่อยู่เฉพาะที่อยู่ IPv4 เฉพาะกฎ IPv4 และเส้นทาง IPv4 ได้รับการติดตั้ง การป้องกันการรั่วไหล/ฆ่าสวิตช์ใช้งานได้สำหรับการรับส่งข้อมูล IPv4 เท่านั้น โฟลว์การจราจร IPv6 ยังคงไม่มีหลักประกัน
คำเตือน : ตัวเลือกนี้จะลดความปลอดภัยและควรใช้เฉพาะเมื่อปลอดภัยที่จะทำเช่นนั้นเช่นเมื่อเครื่องไคลเอนต์มี IPv6 สแต็กปิดใช้งาน กรุณาอย่าใช้เป็นอย่างอื่นเนื่องจากการรั่วไหลของ IPv6 อาจเกิดขึ้น
-6 Use IPv6 tunneling only
จำกัด การดำเนินการโปรโตคอล IP ทั้งหมดเป็น IPv6 แม้ว่าเซิร์ฟเวอร์จะให้ที่อยู่ IPv4 และ IPv6 ที่อยู่เฉพาะที่อยู่ IPv6 เฉพาะกฎ IPv6 และเส้นทาง IPv6 ได้รับการติดตั้ง การป้องกันการรั่วไหล/ฆ่าสวิตช์ใช้งานได้สำหรับการรับส่งข้อมูล IPv6 เท่านั้น การไหลของการจราจร IPv4 ยังคงไม่มีหลักประกัน
คำเตือน : ตัวเลือกนี้ลดความปลอดภัยและไม่ควรใช้เว้นแต่ว่าลูกค้าต้องการอุโมงค์การรับส่งข้อมูล IPv6 เท่านั้น
-b filename
resolv.conf backup filename (default "")
Hide.me CLI เก็บข้อมูลสำรองของ /etc/resolv.conf ในหน่วยความจำ นอกเหนือจากการสำรองข้อมูล hide.me CLI อาจสำรองข้อมูล /etc/resolv.conf ไปยังไฟล์ที่ระบุโดยตัวเลือกนี้
-c filename
Configuration filename
ใช้ไฟล์กำหนดค่าชื่อ "ชื่อไฟล์"
-ca string
CA certificate bundle (default "CA.pem")
ในระหว่างการเจรจา TLS ใบรับรองของ VPN Server จะต้องได้รับการตรวจสอบ ตัวเลือกนี้ทำให้สามารถระบุไฟล์ชุดใบรับรอง CA สำรอง
-caddr address
Control interface listen address (default "@hide.me")
ตั้งค่าที่อยู่ฟังก์ชั่นการควบคุมโหมดบริการ hide.me cli โดยค่าเริ่มต้นฟังบนซ็อกเก็ต unix unix unix hide.me
-ccert certificate
Control interface certificate file
ตั้งค่าอินเตอร์เฟสการควบคุมโหมดบริการ x509 ใบรับรองในรูปแบบ PEM
-ckey key
Control interface key file
ตั้งค่าอินเตอร์เฟสการควบคุมโหมดบริการส่วนตัวในรูปแบบ PEM
-d DNS servers
comma separated list of DNS servers used for client requests (default "209.250.251.37:53,217.182.206.81:53")
โดยค่าเริ่มต้น Hide.me CLI ใช้เซิร์ฟเวอร์ Hide.ME ที่ดำเนินการ DNS เพื่อแก้ไขชื่อเซิร์ฟเวอร์ VPN เมื่อร้องขอโทเค็นหรือระหว่างคำขอเชื่อมต่อ ชุดของเซิร์ฟเวอร์ DNS ที่ใช้สำหรับวัตถุประสงค์เหล่านี้อาจถูกปรับแต่งด้วยตัวเลือกนี้
-dpd duration
DPD timeout (default 1m0s)
เพื่อตรวจสอบว่าการเชื่อมต่อได้หยุดชะงักหรือไม่เนื่องจากปัญหาเครือข่าย hide.me CLI ตรวจสอบสถานะการเชื่อมต่อเป็นระยะ ระยะเวลาการตรวจสอบสามารถเปลี่ยนแปลงได้ด้วยตัวเลือกนี้ แต่ไม่สามารถสูงกว่าหนึ่งนาที
-i interface
network interface name (default "vpn")
ใช้ตัวเลือกนี้เพื่อระบุชื่อของอินเทอร์เฟซเครือข่ายเพื่อสร้างหรือใช้งาน
-l port
listen port
ระบุพอร์ตฟังสำหรับการรับส่งข้อมูล Wireguard ที่เข้ารหัส
-m mark
firewall mark for wireguard traffic (default 0 - no packet marks)
ตั้งค่าไฟร์วอลล์ทำเครื่องหมายโมดูลเคอร์เนล Wireguard จะทำเครื่องหมายแพ็คเก็ตด้วย
-p port
remote port (default 432)
พอร์ตปลายทาง REST ระยะไกลอาจมีการเปลี่ยนแปลงด้วยตัวเลือกนี้
-pf
enable dynamic port-forwarding technologies (uPnP and NAT-PMP)
การส่งต่อพอร์ตแบบไดนามิกโดยค่าเริ่มต้นปิดใช้งาน ใช้ตัวเลือกนี้เพื่อเปิดสำหรับความพยายามในการเชื่อมต่อโดยเฉพาะ อีกทางเลือกหนึ่งอาจเปิดใช้งานการส่งต่อพอร์ตโดยการเพิ่มคำต่อท้าย @PF ลงในชื่อผู้ใช้เมื่อขอโทเค็น โทเค็นดังกล่าวเปิดใช้งานการส่งต่อพอร์ตในการเชื่อมต่อแต่ละครั้งและคุณไม่ควรใช้ตัวเลือกนี้เมื่อใช้งาน
-r table
routing table to use (default 55555)
ตั้งค่าตารางการกำหนดเส้นทางเพื่อใช้สำหรับการจราจรทั่วไปและกลไกการป้องกันการรั่วไหล
-R priority
RPDB rule priority (default 10)
ตั้งค่าลำดับความสำคัญของกฎ RPDB ที่ติดตั้ง Hide.me CLI ใช้ประโยชน์จากการกำหนดเส้นทางนโยบายโดยการติดตั้งกฎ RPDB (หนึ่งต่อโปรโตคอล IP) เพื่อผลักดันการรับส่งข้อมูลไปยังตารางการกำหนดเส้นทางที่เลือกและตรวจสอบการป้องกันการรั่วไหลของ IP
-s networks
comma separated list of networks (CIDRs) for which to bypass the VPN
รายชื่อเครือข่ายแบบแยกส่วนนั่นคือเครือข่ายที่ไม่ควรมีการรับส่งข้อมูลผ่าน VPN
-t string
access token filename (default "accessToken.txt")
ชื่อของไฟล์ที่มีการเข้าถึง Token
-u username
hide.me username
ตั้งค่า Hide.me ชื่อผู้ใช้
Hide.me CLI รองรับการกรองตาม DNS (SmartGuard) ตัวเลือกต่อไปนี้ควบคุมการกรอง DNS:
-forceDns
force tunneled DNS handling on hide.me servers
เปิดใช้งานการเปลี่ยนเส้นทาง DNS บนเซิร์ฟเวอร์ hide.me VPN เช่นนั้นคำขอ UDP หรือ TCP DNS แต่ละตัวจะได้รับการจัดการโดยเซิร์ฟเวอร์ Hide.me VPN นั้น
-whitelist dns names
comma separated list of allowed dns names
คำต่อท้าย DNS ซึ่งจะข้ามเอ็นจิ้นการกรองใด ๆ (ยอมรับไวด์การ์ด)
-blacklist dns names
comma separated list of filtered dns names
ชื่อ DNS ที่จะถูกกรอง
-noAds
filter ads
เปิดใช้งานการกรองโฆษณาที่ใช้ SmartGuard
-noCategories categories
comma separated list of filtered content categories
เปิดใช้งานการกรอง SmartGuard ที่ละเอียด ดึงรายการหมวดหมู่ด้วยคำสั่งหมวดหมู่
-noIllegal kind
filter illegal kind (content, warez, spyware, copyright)
เปิดใช้งานการกรองระดับหยาบของเนื้อหาที่ผิดกฎหมายคลังสินค้าสปายแวร์และวัสดุที่มีลิขสิทธิ์
-noMalicious
filter malicious destinations
เปิดใช้งานการกรองโฮสต์เว็บไซต์หรือโดเมนที่เป็นอันตราย
-noMalware
filter malware
เปิดใช้งานตัวกรองมัลแวร์ ควรกรองไซต์โฮสติ้งหรือแจกจ่ายมัลแวร์
-noRisk level
filter content according to risk level (possible, medium, high)
เปิดใช้งานตัวกรองความเสี่ยง
-noTrackers
filter trackers
เปิดใช้งานตัวกรองการติดตาม
-pg age
apply a parental guidance style age filter (12, 18)
เปิดใช้งานตัวกรองรูปแบบคำแนะนำของผู้ปกครองตามขีด จำกัด อายุที่กำหนด เนื้อหาที่ไม่เหมาะสมจะถูกกรองออก
-safeSearch
force safe search with search engines
บังคับใช้โหมด Safesearch ด้วยเครื่องมือค้นหาที่รองรับ (Google, Bing)
Hide.Me CLI สามารถใช้แบบสแตนด์อโลนหรือเป็นบริการ SystemD การใช้ hide.me CLI เป็นบริการ SystemD ช่วยให้คุณสามารถใช้ประโยชน์จากความละเอียดการพึ่งพาของ SystemD การตรวจสอบและคุณสมบัติการชุบแข็งที่หลากหลาย
สคริปต์ตัวติดตั้งเชื่อมโยงไฟล์หน่วยเทมเพลต [email protected] สำหรับคุณหรือคุณอาจเชื่อมโยงไฟล์หน่วยเทมเพลตด้วยตนเองโดยการรัน:
Systemctl link hide.me@service
ในการจัดการการเชื่อมต่ออาจใช้คำสั่งต่อไปนี้:
| การดำเนินการ | สั่งการ |
|---|---|
| สร้างการเชื่อมต่อ | Systemctl เปิดใช้งาน hide.me@server |
| เริ่มการเชื่อมต่อ | Systemctl เริ่ม hide.me@server |
| หยุดการเชื่อมต่อ | Systemctl หยุด hide.me@server |
| ลบการเชื่อมต่อ | Systemctl ปิดการใช้งาน hide.me@server |
เซิร์ฟเวอร์เป็นชื่อเซิร์ฟเวอร์ชื่อกลุ่มหรือที่อยู่ IP
ตัวเลือกคำสั่งเพิ่มเติมไปยังคำสั่ง hide.me connect ที่รันโดยบริการ SystemD สามารถใส่ลงใน OPTIONS= ตัวแปรการกำหนดค่าใน /opt/hide.me/config
การเริ่มต้นบริการถือว่าประสบความสำเร็จเมื่อการเชื่อมต่อกับเซิร์ฟเวอร์ซ่อนตัวได้รับการจัดตั้งขึ้นอย่างสมบูรณ์
Hide.Me CLI เป็นตัวเลือกที่ดีที่สุดสำหรับพีซีเดสก์ท็อป แต่อาจไม่เหมาะสมสำหรับเราเตอร์หรืออุปกรณ์ฝังตัว สำหรับอุปกรณ์ขนาดเล็กเหล่านั้นเราได้พัฒนาชุดสคริปต์ Ash (ในสคริปต์/ ไดเรกทอรี):
ในส่วนหัวของแต่ละสคริปต์คุณจะพบตัวอย่างการใช้งาน
ฟังก์ชั่นของสคริปต์เหล่านั้นเป็นพื้นฐานเช่นพวกเขาจะทำให้คุณเชื่อมต่อ/ตัดการเชื่อมต่อ แต่จะไม่ตรวจสอบการเชื่อมต่อของคุณ ชุดคุณสมบัติที่ จำกัด เช่นนี้อาจเพียงพอที่จะใช้ hide.me กับเราเตอร์ที่มีเทคนิคการตรวจสอบและล้มเหลวของตัวเอง
แต่ละสคริปต์ได้รับการตรวจสอบในเราเตอร์ที่ใช้ OpenWRT ด้วยเฟิร์มแวร์ที่มีเสถียรภาพล่าสุด (19.07.7) และการสนับสนุน Wireguard สิ่งที่ต้องมีก่อนซึ่งควรจะติดตั้ง OPKG คือ:
หากคุณต้องการมีส่วนร่วมในโครงการนี้โปรดอ่านคู่มือการบริจาค