可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

Ubuntu 超快部署 wireguard 服务端

最近更新:3rd 四月, 2019

新出的 Wireguard 很多人都想尝试,这里 VPN 到底适不适合用来翻墙我们先不讨论,先来看看怎么快速在 vps 上起一个 wireguard 服务。很多人听说这个服务配置起来特别复杂,所以望而却步,实际上很简单。

环境

这里我用最新的 ubuntu 18.04.2 来配置,首先你得有一个 vps,创建好后最好按照我的 购买了VPS之后你应该做足的安全措施里配置ssh的证书访问。

安装

wireguard 是有为 ubuntu 提供安装包的,但并没有集成在官方源里,所以我们要自己添加 ppa,然后安装。

1
2
3
4
5
addaptrepository ppa:wireguard/wireguard
 
apt upgrade
 
apt install wireguard resolvconf y

配置

进入配置目录 cd /etc/wireguard ,执行下面两条命令来生成密钥对:

1
2
wg genkey | tee server_privatekey | wg pubkey > server_publickey
wg genkey | tee client_privatekey | wg pubkey > client_publickey

开启流量转发:

1
2
3
echo 1 > /proc/sys/net/ipv4/ip_forward
echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
sysctl p

如果你想添加开机启动,那么:

1
systemctl enable wgquick@wg0

使用  ifconfig 等命令查看你的网卡信息,找到那个使用外网的网卡,如果你有多个,就选其中一个,用来给wireguard服务监听。

你得到的结果大致如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 128.199.152.999  netmask 255.255.192.0  broadcast 128.199.191.255
        inet6 fe80::bc10:f7ff:feb7:226b  prefixlen 64  scopeid 0x20<link>
        ether be:10:f7:b7:22:6b  txqueuelen 1000  (Ethernet)
        RX packets 23440  bytes 56095614 (56.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9140  bytes 714939 (714.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 166  bytes 13998 (13.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 166  bytes 13998 (13.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

比如这里的例子,显然网卡名称就是 eth0 ,要记下这个,一会写配置要用到。

1
2
3
4
5
6
7
8
9
10
11
12
13
echo
  [Interface]
    PrivateKey = $(cat server_privatekey)
    Address = 10.0.0.1/24
    PostUp   = iptables A FORWARD i wg0 j ACCEPT; iptables A FORWARD o wg0 j ACCEPT; iptables t nat A POSTROUTING o eth0 j MASQUERADE
    PostDown = iptables D FORWARD i wg0 j ACCEPT; iptables D FORWARD o wg0 j ACCEPT; iptables t nat D POSTROUTING o eth0 j MASQUERADE
    ListenPort = 443
    DNS = 8.8.8.8
    MTU = 1420
 
  [Peer]
    PublicKey = $(cat client_publickey)
    AllowedIPs = 10.0.0.2/32 > wg0.conf

直接生成配置,你也可以手动编写,不过就需要自己去读取密钥对了,注意名字,不要搞错。另外代码块中高亮的两行,之前我们查看的网卡名,就要写在这里面,如果你的网卡不是 eth0 ,那么请自行手动替换。

考虑到密钥对都在服务器上,这里我们再顺便生成客户端配置:

1
2
3
4
5
6
7
8
9
10
11
12
echo
[Interface]
  PrivateKey = $(cat client_privatekey)
  Address = 10.0.0.2/24
  DNS = 8.8.8.8
  MTU = 1420
 
[Peer]
  PublicKey = $(cat server_publickey)
  Endpoint = 128.199.152.999:443
  AllowedIPs = 0.0.0.0/0, ::0/0
  PersistentKeepalive = 25 > client.conf

注意高亮行,把远端 IP 改成你服务器的 IP。

启动

至此,配置完成!

1
2
3
4
5
6
7
8
# 启动WireGuard
wgquick up wg0
 
# 停止WireGuard
wgquick down wg0
 
# 查看WireGuard运行状态
wg

就是这么简单~

多用户

首先停止服务 wgquick down wg0

然后生成新用户的密钥对:

1
wg genkey | tee client0_privatekey | wg pubkey > client0_publickey

然后在服务端配置中增加,注意这是一条命令,不要分行执行:

1
2
3
4
echo
[Peer]
  PublicKey = $(cat client0_publickey)
  AllowedIPs = 10.0.0.3/32″ >> wg0.conf

注意高亮行,这个内网 IP 段要写个不同的,每一个 “Peer” 用一个 ip,比如上文用的是 10.0.0.2,这里就用 10.0.0.3,如果还需要更多用户,那么就以此类推。

创建客户端配置文件,这里就和上文中的一样了,只是注意密钥对用新的,这同样也是一个命令,不要分行执行:

1
2
3
4
5
6
7
8
9
10
11
12
echo
[Interface]
  PrivateKey = $(cat client0_privatekey)
  Address = 10.0.0.3/24
  DNS = 8.8.8.8
  MTU = 1420
 
[Peer]
  PublicKey = $(cat server_publickey)
  Endpoint = 1.2.3.4:443
  AllowedIPs = 0.0.0.0/0, ::0/0
  PersistentKeepalive = 25 “ > client0.conf

然后启动服务: wgquick up wg0


参考文献:

一个高速、安全、可以复活被墙IP的VPN —— WireGuard 服务端手动教程

WIREGUARD搭建和使用折腾小记

 

相关文章:

  1. 在 ufw 上开启 nat 伪装和端口转发
  2. iptabls详解
  3. Ubuntu 下更简单的防火墙 Uncomplicated Firewall
  4. 搭建 OpenConnect VPN 服务器 AnyConnect (ocserv)
  5. 购买了VPS之后你应该做足的安全措施
  6. 在Ubuntu等OS的vps上七步搭建pptp协议的VPN

转载请注明:逗比根据地 » Ubuntu 超快部署 wireguard 服务端

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址