HIDE.ME CLI是基于WireGuard协议的Eventure Ltd. hide.me VPN服务的VPN客户端。客户的功能包括:
托多:
您可以克隆此存储库并运行:
go build -o hide.me
或者,从“版本”部分下载最新的构建。
源树和二进制版本包含简单的安装和卸载脚本。 hide.me cli安装在 /opt/hide.me目录中。除了将hide.me文件复制到 /opt/hide.me,对系统没有修改。
当检测到基于系统D的分布时,安装程序链接模板单元文件,该文件可用于实例化连接。
您可以使用包装/Archlinux/(需要git clone --recurse-submodules )或https://aur.archlinux.org/packages/packages/hide-client/中构建包裹(需要git克隆 - recurse-submodules)
构建:
makepkg && sudo pacman -U hide-client-0.9.1-1-any.pkg.tar.zst
请注意,ArchLinux软件包将已安装文件的默认位置更改为二进制,/eTc /usr/bin/hide.me /etc/hide.me/accessToken.txt accesstoken.txt for AccessToken,/usr/share/hide.me/ca的二进制/usr/share/hide.me/CA.pem /usr/lib/systemd/system/hide.me@service
Wineguard是该行业中最安全,最简单的VPN隧道解决方案之一。只要需要在不安全的媒体上(例如互联网)上的电线固定钥匙交换,就很容易设置并使用。任何类型的钢线公共钥匙交换都超出了钢线规范的范围。
通常,关于不安全媒介的公共密钥交换和秘密密钥谈判的复杂任务通常是由:
hide.me的实施Wireguard的实现HTTPS(TLS)进行交换:
所有操作的身份验证都需要使用访问权限。访问说明是一个二进制斑点,在密码上绑定到hide.me帐户。
在以下步骤中建立了与hide.me VPN服务器的连接:
与许多其他解决方案相反,hide.me CLI不使用任何类型的Linux防火墙技术(Iptables,ntfables或EBPF)。与其依靠Linux'es IP过滤框架,不如通过设置特殊路由表和一组路由策略数据库规则来选择性地路由流量。除非符合以下条件之一,否则上述路由表中的黑洞路线会丢弃所有流量:
这种操作模式使用户有可能建立自己的防火墙策略,而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服务器,必须从VPN服务器请求访问。令牌命令发出访问请求。任何其他服务器发出的访问token可以使用任何其他HIDE.ME VPN服务器。当服务器发出访问时,必须将令牌存储在文件中。访问权限的默认文件名是“ 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休息端点的主机名可以指定为完全合格的域名(nl.hide.me),缩短名称(NL)或IP地址。无法保证其余端点将匹配线条端点。
-4 Use IPv4 tunneling only
将所有IP协议操作限制为IPv4。即使服务器将提供仅处理IPv4地址的IPv4和IPv6,IPv4规则和IPv4路线也已安装。泄漏保护/杀戮开关仅适用于IPv4流量。 IPv6交通流量保持不安全。
警告:此选项会降低安全性,并且仅在安全时才应使用,例如,当客户端计算机具有IPv6堆栈禁用时。请否则请不要使用它,因为IPv6泄漏可能会发生。
-6 Use IPv6 tunneling only
将所有IP协议操作限制为IPv6。即使服务器将提供仅处理IPv6地址的IPv4和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服务器的证书。此选项使指定替代CA证书捆绑文件成为可能。
-caddr address
Control interface listen address (default "@hide.me")
设置服务模式控制接口收听地址。默认情况下,hide.me cli,在抽象的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
为加密的VireGareard流量指定收听端口。
-m mark
firewall mark for wireguard traffic (default 0 - no packet marks)
设置防火墙标记钢丝柜内核模块将标记其数据包。
-p port
remote port (default 432)
可以使用此选项更改远程休息端点端口。
-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")
文件的名称包含访问权限。
-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服务器上激活DNS重定向,以使每个UDP或TCP DNS请求都会由该hied.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
激活细粒度的智能守卫过滤。带有类别命令的获取类别列表
-noIllegal kind
filter illegal kind (content, warez, spyware, copyright)
激活非法含量,Warez,间谍软件和受版权保护的材料的粗级过滤
-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
使用受支持的搜索引擎(Google,bing)强制执行Safesearch模式
hide.me cli可以独立使用,也可以用作SystemD服务。使用HIDE.ME CLI作为SystemD服务,您可以利用Systemd的依赖性分辨率,监视和各种硬化功能。
安装程序脚本链接模板单元文件[email protected] for for for for for for for for hout
SystemCtl链接hide.me@service
要管理连接以下命令:
| 手术 | 命令 |
|---|---|
| 创建连接 | systemctl启用hide.me@server |
| 开始连接 | systemctl启动hide.me@server |
| 停止连接 | SystemCtl stop hide.me@server |
| 删除连接 | SystemCtl禁用hide.me@server |
服务器是服务器名称,组名称或IP地址。
由SystemD Service运行的hide.me connect命令的其他命令行选项可以放入/opt/hide.me/config中的OPTIONS= configuration变量中。
当与hide.me服务器的连接完全建立时,服务启动被认为是成功的。
hide.me CLI是台式PC的最佳选择,但可能不适合路由器或嵌入式设备。对于那些小设备,我们开发了一组ASH脚本(在脚本/目录中):
在每个脚本的标题中,您会找到使用示例。
这些脚本的功能是基本的,即它们会让您连接/断开连接,但不会监视您的连接。这样有限的功能集可能足以将hide.me与具有自己的监视和故障技术的路由器一起使用。
每个脚本都通过最新的稳定固件(19.07.7)和Wineguard支持在基于OpenWRT的路由器上进行了验证。应安装OPKG的先决条件是:
如果您想为该项目做出贡献,请阅读《贡献指南》。