ubuntu配置并连接wireguard客户端

zyg 2年前 (2023-04-06) 阅读数 8670 #Linux使用

(一)引言

为了能够在工作站上可以访问到远程网络的资源,可以使用wireguard配置。

(二)安装wireguard

首先执行系统更新:
sudo apt update
等待更新结束后安装wireguard:
sudo apt install wireguard
等待安装完成。

(三)配置wireguard

wg和wg-quick命令行工具可帮助您配置和管理WireGuard接口,WireGuard接口是虚拟网卡。WireGuard VPN网络中的每个设备都需要具有私钥和公钥。在此仅需要使用wg的客户端功能,所以无需生成密钥等等,直接创建新的接口,导入配置文件即可。

  1. 配置新的接口
    sudo vim /etc/wireguard/wg0.conf
  2. 复制配置文件
    复制已有的配置文件到vim打开的文件中去(涉及隐私的部分已用#替换),如下:
    #
    # Use this configuration with WireGuard client
    #
    [Interface]
    Address = 10.14.0.2/16
    PrivateKey = 8DQguawg05nK3P99/##################q14bAYVo=
    DNS = 162.###.172.##, 149.###.159.92
    [Peer]
    PublicKey = d0m2sIa0JGcxC#############oiWI/oKoX1TL2f2fTA=
    AllowedIPs = 0.0.0.0/0
    Endpoint = 45.###.252.#:51820
    这里说明一下/etc/wireguard/wg0.conf配置文件定义接口的每个字段含义。
    Address wg0接口的IP v4或IP v6的地址。请使用保留给私有网络范围内的IP地址,比如10.0.0.0/8、172.16.0.0/12或192.168.0.0/16。
    ListenPort 是接口监听的端口。
    PrivateKey 由wg genkey命令生成的私钥。你可以使用sudo cat /etc/wireguard/privatekey命令要查看私钥文件的内容。
    SaveConfig 设置为true时,当关闭接口时将当前配置将保存到配置文件中。
    PostUp 在启动接口之前执行的命令或脚本。
    在此示例中,在PostUp钩子启用iptables伪装。这允许流量离开服务器,使VPN客户端可以访问互联网。

    (三) 连接服务端

    在连接之前,需要安装一个依赖包,否则会导致连接报错:
    sudo apt install openresolv
    可以使用sudo wg-quick up wg0连接服务端:
    [#] ip link add wg0 type wireguard
    [#] wg setconf wg0 /dev/fd/63
    [#] ip -4 address add ##.1#.0.#/16 dev wg0
    [#] ip link set mtu 1420 up dev wg0
    [#] resolvconf -a wg0 -m 0 -x
    Too few arguments.
    Too few arguments.
    [#] wg set wg0 fwmark 51820
    [#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
    [#] ip -4 rule add not fwmark 51820 table 51820
    [#] ip -4 rule add table main suppress_prefixlength 0
    [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
    [#] iptables-restore -n
    使用sudo wg-quick down wg0断开客户端连接,
    连接后使可以用sudo wg show显示当前的接口。
版权声明

本文仅代表作者观点。
本文系作者发表,未经许可,不得转载。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

yanguo

yanguo

管理员
作者文章
最新文章
标签列表
    欢迎你第一次访问网站!