上古神器WireGuard异地高效率组网

简介

WireGuard 是一个易于配置、快速且安全的开源 VPN,它利用了最新的加密技术。目的是提供一种更快、更简单、更精简的通用 VPN,它可以轻松地在树莓派这类低端设备到高端服务器上部署。他没有像OpenVPN那样10w的代码量,WireGuard非常精简只有4000行代码。

官网

地址:https://www.wireguard.com/quickstart/

组网实现

WireGuard Server(一台公网服务器):

  1. 更新update

    yum update -y
    
  2. 安装wireguard

    $ sudo yum install epel-release elrepo-release
    $ sudo yum install yum-plugin-elrepo
    $ sudo yum install kmod-wireguard wireguard-tools
    
  3. 创建目录

    cd /etc/wireguard
    
  4. 生成密钥对

    # 开始生成 密匙对(公匙+私匙)。
    wg genkey | tee privatekey-server | wg pubkey > publickey-server # 生成服务端密钥对
    
  5. 配置服务端文件

    vim /etc/wireguard/wg0.conf输入以下内容

    [Interface]
    Address = 10.100.0.1/16  # 这里指的是使用 10.100.0.1,网段大小是 16 位
    SaveConfig = true
    ListenPort = 51820  # 监听的 UDP 端口
    PrivateKey = < 这里填写 Server 上 privatekey 的内容 >
    # 下面这两行规则允许访问服务器的内网,注意替换`eth0`
    PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
    
    # Client,可以有很多 Peer
    [Peer]
    PublicKey = < 这里填写 Client 上 publickey 的内容 >
    AllowedIPs = 10.100.0.2/32  # 这个 Peer 只能是 10.100.0.2/32
    # 如果想把所有流量都通过服务器的话,这样配置:
    # AllowedIPs = 0.0.0.0/0, ::/0
    
  6. 启停服务端

    wg-quick up wg0    #启动服务端
    wg-quick down wg0  #停止服务端
    wg #查看节点列表
    wg syncconf wg0 <(wg-quick strip wg0) #重载配置文件,不影响已有连接.
    

WireGuard Client(N台非公网服务器):

  1. 更新update

    yum update -y
    
  2. 安装wireguard

    $ sudo yum install epel-release elrepo-release
    $ sudo yum install yum-plugin-elrepo
    $ sudo yum install kmod-wireguard wireguard-tools
    
  3. 创建目录

    cd /etc/wireguard
    
  4. 生成密钥对

    # 开始生成 密匙对(公匙+私匙)。
    wg genkey | tee privatekey-client | wg pubkey > publickey-client   # 生成客户端密钥对
    
  5. 配置客户端文件

    [Interface]
    PrivateKey = < 这里填写 Client 上 privatekey 的内容 >
    Address = 10.100.0.2/32
    DNS = 8.8.8.8  # 连接后使用的 DNS, 如果要防止 DNS 泄露,建议使用内网的 DNS 服务器
    
    [Peer]
    PublicKey = < 这里填写 Server 上 publickey 的内容 >
    Endpoint = 1.1.1.1:51820  # 服务端公网暴露地址,51280 是上面指定的
    AllowedIPs = 10.100.0.0/16,172.17.0.11/20  # 指定要访问的服务端网段,或者设置0.0.0.0/0来进行全局代理.
    PersistentKeepalive = 25
    
  6. 启动客户端连接

    wg-quick up ./wg0.conf
    
  7. 启动完客户端之后回WireGuard服务端查看,也可以尝试从客户端pingWireGuard服务器(内网地址),注意公网作为WireGuard的服务器要安全组开端口

    wg
    
上一篇:RPM和DEB包


下一篇:打包警告:asset size limit: The following asset(s) exceed the recommended size limit (244 KiB)