Easy-WG-Quick-轻松为集线器和对等设备创建WireGuard配置

2020-10-18 03:39:11

这些说明将使您获得项目的副本,并在您的本地计算机上运行。这台机器(称为集线器)将充当VPN集中器。Allther Peers连接到集线器(就像在“旅途勇士”配置中一样)。

在本地计算机、路由器、VPS或容器上为您的操作系统安装Wireguard。这里将是你们的枢纽。

集线器上应提供AS Dependations/bin/sh、wg、wg-ick、awk、grep和ip命令。如果IP不可用,则要求用户将脚本中的EXT_NET_IF和EXT_NET_IP变量设置为外部网络接口名称和IP地址(或编辑wghub.conf)。可选地,Qrencode可用于为移动应用生成QR码。

此脚本只需要安装工具,但还需要使用Wireguard模块(或用户空间实现)。有关各种操作系统的详细安装指南,请访问wireguard.com/install。

脚本不需要任何参数。只要运行它,它就会为集线器和一个对等点创建usableWireguard配置。任何顺序调用都会在同一集线器内创建另一个对等配置。

./Easy-WG-QUICK#第一次运行会创建集线器配置和一个客户端。/Easy-WG-QUICK#任何其他运行都会创建其他客户端。

向脚本传递参数将创建带有名称而不是序列号的配置文件,以帮助记住哪个配置用于哪个设备。以下命令将创建wgclient_client_name.conf文件。

无seqno.txt...。正在创建!没有wgpsk.key...。创建一个!没有wghub.key...。正在创建!没有wghub.conf...。在wlp9s0上创建一个!wireguard集线器地址是10.13.1.140:51820。注意:如果需要,请自定义wghub.conf的[接口]部分!注意:将参数传递给脚本将使用提供的名称创建客户端配置,以帮助记住哪个配置用于哪个设备。如果您没有传递任何参数,您仍然可以使用以下命令手动重命名创建的文件:mv-vi wgclient_10.conf wgclient_name.conf No wgclient_10.conf...。创建one!█。██▄█▀██▀▄▀▄█▄▀▄█▀▀▄█▄▄▀▄▀██▀▀▀▀█▄█▀▀▄█▄▀▀█▄▀█▄█▀▄▀▀█▀▄▄▄。▄▀█▄██▄█▀▀▄███▀▀▄▄▀▄▄▀███▄▀▀▀▄█▄▄▄██▀▀▀██▀▄██▀▄███▀▀▀▀▄▀██▄█▀▀█▀██▄▀█▄██▄▄▄█。█▄▀▀▄▀▄▀▀▄▀▄██▄███▄███▀▀▄█▀▄▀▀▄▀▀▄█▄▄█▄▄██▄▄▄█▀█▀▄▀▄█▄▄█▄▄▄██▀▄▀▄▀█▄▀▄▀▀。▄▄█▄▀▄▀▀█▀▄▀▀▄▀▀▄█▀█▀▀▀▄▀█▄█▄▄▀▀▄▄▄█▄▀▀█▄▀▀▄▄▄▄▀█▀▀▀██▀▄███▄▀███▀▄▄。▀██▀▄███▄▀▀▄▄▀▄█▀▄▀▀█▀▄▄▀█▀▀▀▄▄▀▄▀▄██▄█▀▀▄▀███▀▀▄▀█▀▄▀█▀▀▄▄█▀██▀█▄▄▀█▄▀▀██▀▄▀█▀▄▄▀▀▄。▄▄▄▄█▀█▀▀▀██▀█▀▀▄▀█▀██▀█▄▀▀▀▀▄▀█▀▄▄▄█▀▀▀▄▄█▀▄▄██▄▀▀▀▀█▄▄▄▀▄█▀▀▄▄▄█▀▄█▄▄▄███▀▄▀██▀▀██▄▀▄▄█。█▀▄█▄███▄▀▄█▄▀▄▀▀▀▀▄▀▀▄▄▀▄▄▄▄▀▄▄█▄▄▀█▄▄▀▀▀▄▄▄▀▀▄██▀▄▄█▄▀▀▄██▀▄█▄▀▄▀█▀▄▄██▀█▄██▀▄▄▀█▄▄。█▀▀▄▀█▄██▀▀▄▄█▄▀▄▄▄█▄█▀█▄▀▄▄█▀▄▀██▀▄███▄█▀▀▀▀██▀▀▀▄▀██▀█▄▀▄▀▄█▄▄▄▀█▄██▄▄▀▄▄▀█。▄█▄▄▄▀▀▀▀▄▄█▀▄█▄▄▄▀▀█▀▄▀▄▄█▀█▀▄▄▀▀▄███▀█▀▀▄█▄▄▄███▀▄▄▀▄█▄▀▄▄▄▀▄▀███▀█▀█▄▄█▄▄▄█。▄▀█▀▄█▀█▄█▀▄██▀▄█▀██▀▄▄▄▄▀▀▄█▀█▀▄█▄██▄█▄▀▀██▄▄▀███▀████▄█▄▄▄▀▀█▄██▀▀▀▀▄█▄███▄▀。█▀▄▄▀█▄██▀▄█▄█▄▄▀████▄███▄▀██▄▀▄▄██▄▄▄▄█▄█▀▄▀▄█▄▀▀█▄█▀▀█▀▀██▀██▀▀███▄▀▀▀█。▄█▀▄█▄▄█▄█▀▄▀█▄▀▄▄▀▄▄█▀▄▄█▄▄█▀▄▀▀█▄▄█▀█▄▄█▀█▄▀▀▄▀██▀▀▀▀▄█▄▀▄▄▀█▄█▀▀▄█▄▀█▀▀。▄██▀▄▀▀▄▄█▄██▀▄█▄▄▄▀██▄▀██▀▄█▀█▄█▄▄▄▄██▄▄▄▄█▄▀▄▄█▄█▄▀▀▀█▀█▀▀▄▀█▀▄█▄▀█▄█▀▀▄█▄█▄▀▄█▄▀▀█▄▄▄。▀▀█▄▀█▄▀▄▀▀█▄▀▄▄▄▄▀▀▀▀▄▀██▀█▄▀▀█▄▀▀█▀▄▄██▄█▄██▀▄▀▄▄█▄▀█▄▀▄▄▀█▀█▀▄██▀▄▄█▀█▀██▀▀▄█▀██▀▄█▄█▀█。█▀█▄▄▄█▀▀██▀▄▄█▀█▄▀▄▄▄█▄▄█▄█▀▄▀▄█▄▄█▄█▄▄▀▄▄▀█▀██▄▀▄█▄█▀▄█▀██▀▄▄▄▀▀。▀▀█▀██▄▀▀██▀▀▄██▀▄█▄▄██▄▄▄▄█▄▄▀█▄▀█▀▄▀▄▄▀▄██▄▀▀▄█▀▄▀███▀▀▄███▄▄█▀█▄▄▄▀█▀█▄█▄▄██▀▄▀██。▀▀▄▄▄▄██▄█▄▄▄█▄▄▄▀▀▄▀▄█▀▄█▄▀▄▀█▄█▄▄▀▄▄█▄▄█▀▄█▀█▄▀█▄█▄▄▄█▄▄▄▀▄▀██▄▄▀█▄▀▀█▄▄▄██▀████。████▄█▄██▀▀█▀██▀▀▄█▄▀▄█▄█▀█▄██▀▀▄█▄▀█▀██▄█▀▀▀▄█▀▄█▀███▄██▄▄▄█▄▄▄▄█▄▀▀█▀▄▄▀▀█▄▄▄▀。▀▀██▄▄▄▀█▄▄▄██▀▄█▄▀█▀▄███▄█▄▀█▄▄▀▀▄▀▀▄█▀▄▀▄█▀▄█▀▄▄███▄▀▀█▄█▄▄██▄▄█▄▄▄▄█▄▄▄██。▄█▄▄█▄▄▄█▄▄█▄▄▄█▄█。█Scan二维码与您的手机或使用";Wgclient_10.conf";文件。正在更新wghub.conf...。完成!重要提示:使用WG-QUICK:SUDO WG-QUICK DOWN将更新的wghub.conf配置部署到wireguard。/wghub.conf#如果已配置sudo WG-QUICK UP。/wghub.conf sudo WG show#检查状态

接口:wghub公钥:kbaG3HxSDz3xhqi TNXlo1fZkFa+V6oTl+w0cSAQKxwQ=私钥:(隐藏)监听端口:51820对等点:th8qYu0R0mgio2wPu1kz6/5Ogi6l8iy7OobK590LHw=预共享密钥:(隐藏)端点:10.60.1.150:37218允许的IPS:10.127.0.10/32最近一次握手:50分22秒前传输:32.64MIB已收到,95.24MIB已发送。

默认情况下,Easy-WG-Quick Use接口作为VPN集线器的外部网络接口,默认路由在其上完成。如果自动检测失败或配置生成在集线器外部完成(即在气隙笔记本电脑上),用户可以使用以下命令在extnetif.txt文件中设置接口名称:

默认情况下,Easy-WG-QUICK使用通过其进行默认处理的接口的IP地址作为VPN集线器的外部IP地址。如果集线器位于防火墙之后或执行NAT/PAT/MasQuarding,则可能不是这样。用户可以使用以下命令在extnetip.txt文件中设置首选IP地址:

默认情况下,Easy-WG-Quick使用1025-65535范围内的随机端口号。当防火墙配置需要使用静态端口号或其他原因时,用户可以使用以下命令在portno.txt文件中设置首选端口号(在此示例中为80):

默认情况下,Easy-WG-Quick对IPv4和IPv6都使用随机生成的内部网络地址。可以使用以下命令设置自定义网络地址。

默认情况下,Easy-WG-QUICK使用1.1.1.1作为其内部DNS。您可以使用下面的命令为客户端提供自定义IPv4 DNS。

默认情况下,Easy-WG-QUICK使用2606:4700:4700::1111作为其内部DNS。您可以使用以下命令为客户端提供自定义IPv6 DNS。

防火墙类型由操作系统猜测。对于Linux,使用iptables和ip6table。对于FreeBSD,实现了基本的PF NAT规则。文件fwtype.txt包含防火墙类型的名称。要覆盖自动检测或禁用任何规则,请运行以下命令之一:

Echo iptables>;fwtype.txt#选择Linux netfilterecho Firewalld>;fwtype.txt#选择[Firewalld]echo PF>;fwtype.txt#选择OpenBSD PF自定义>;fwtype.txt#包括文件中的预定义命令echo None>;fwtype.txt#跳过WG期间的任何设置-快速上/下。

PostUp=ECHO";命令1";PostUp=ECHO";命令2";PostUp=...PostDown=ECHO";命令1";PostDown=secho";命令2";PostDown=...。

Sysctl命令语法是从操作系统猜测的。支持Linux和FreeBSD。由于集线器需要启用IP转发才能将VPN流量转发到Internet,因此默认情况下由PostUp/PostDown设置进行管理。某些应用程序(如Docker)可能要求从不禁用IP转发。在这种情况下,可能需要在sysctltype.txt中设置None并在其他地方管理IP转发设置。

文件sysctltype.txt包含sysctl类型的名称。要覆盖自动检测或禁止运行任何命令,请使用以下命令之一:

Echo Linux>;sysctltype.txt#选择Linux sysctl命令decho FreeBSD>;sysctltype.txt#选择FreeBSD sysctl命令decho no>;sysctltype.txt#跳过WG期间的任何设置-快速上/下。

如果在服务器上检测到全局单播IPv6地址,将使用分配的内部IPv6地址创建隧道。这允许集线器的客户端将overHub的IPv6 NAT连接到IPv6网络。

如果未检测到全局单播IPv6地址,则文件名forceipv6.txt的存在可能会强制启用IPv6支持。

要使用外部IPv6地址(即通过IPv6将客户端连接到集线器),只需将脚本中的EXT_NET_IF和EXT_NET_IP变量设置为外部网络接口名和IPv6地址(或编辑wghub.conf)。

默认情况下,Easy-WG-QUICK使用IPv6伪装向对等点提供IPv6连接。这更易于设置,并且只需要单个IPv6全局单播地址即可工作。另一方面,网络地址转换(NAT)也存在问题和局限性。

邻居发现代理(ND代理、NDP代理)允许端到端连接,但需要将/64网络分配给集线器。从此/64网络中,必须划分一个子网(即/112)并将其分配给Wireguardinterface。

当集线器分配了2001:19f0:6c01:1c0d/64时,部分集线器可以分配给Wireguard接口(即2001:19f0:6c01:1c0d:40/112)。

可能需要DNS重定向才能与PI-HOLE或Cloudflare DNS over TLS等服务集成。这可以通过使用wghub.conf中的端口53 UDP/TCPredirect来实现。

PostUp=iptables-t NAT-A PREROUTING-I%i-p UDP-m UDP--dport 53-j DNAT--到目的地1.1.1.1:53PostUp=iptables-t NAT-A PREROUTING-i%i-p TCP-m TCP--dport 53-j DNAT--to-Destination 1.1.1.1:53PostDown=IPtabLes-t NAT--D PREROUTING-I%i-p UDP-m UDP-dport 53-j DNAT--to-Destination 1.1.1.1:Post53Down=IptabLes-t NAT--to-Destination 1.1.1.1:Post53Down=IptabLes-t NAT--to-Destination 1.1.1.1:Post53Down=IptabLes--t NAT--to-Destination 1.1.1.1:Post53 Down=IptabLes-t NAT--to-Destination 1.1.1.1。-t NAT-D PREROUTING-i%i-p TCP-m TCP--dport 53-j DNAT--到目的地1.1.1.1:53。

Postup=ip6tables-t nat-A PREROUTING-I%i-p udp-m udp--dport 53-j DNAT--至目标2606:4700:4700::1111:53PostUp=ip6tables-t nat-A PREROUTING-i%i-p TCP-m TCP--dport 53-j DNAT--to-Destination 2606:4700:4700:1111:53PostDown=ip6tables-t NAT-D PREROUTING-I%i-p UDP-m UDP-dport 53-j DNAT--to-Destination 2606:4700:4700:1111:1111:53PostDown=ip6tables-t NAT-D PREROUTING-i%i-p tcp-m tcp--dport 53-j DNAT--到目标2606:4700:4700::1111:53。

Systemd可以使用wg-ick.service加载集线器和客户端的配置。请注意,还存在对设置有线接口的本机支持(从版本237开始)。