CONTENTS

  1. 1. 准备工作
  2. 2. 安装 WireGuard
  3. 3. 配置服务端
  4. 4. 客户端配置
  5. 5. 服务端再配置
  6. 6. References

本文以 Debian 10 为例,介绍如何搭建 WireGuard 服务端,并说明对应的客户端搭建方法和配置文件的格式。Ubuntu 20.04 系统与之大同小异。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行 WireGuard 的部署,并默认已按初始化配置文章对服务器进行了配置。


准备工作

安装步骤所需软件包:

1
2
sudo apt update
sudo apt install apt-transport-https vim -y

安装 WireGuard

添加 backports 源:

1
sudo sh -c "echo 'deb https://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list"

安装软件包:

1
2
sudo apt update
sudo apt -t buster-backports install wireguard -y

配置服务端

切换到 root 用户:

1
sudo -i

创建私钥、公钥:

1
2
3
cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey

记录私钥、公钥:

1
2
cat privatekey    # 服务端私钥
cat publickey    # 服务端公钥

创建配置文件,并添加内容:

1
2
exit    # 退出 root 用户
sudo vim /etc/wireguard/wg0.conf

/etc/wireguard/wg0.conf

1
2
3
4
5
6
7
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 自定义端口
PrivateKey = 服务器私钥

防火墙配置:

1
sudo ufw allow 自定义端口/udp

启动服务:

1
2
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

查看服务状态:

1
sudo systemctl status wg-quick@wg0

查看实际效果:

1
2
sudo wg
sudo ip a show wg0

至此,服务端的配置大体完成,稍后还需要在客户端配置后,在服务端添加客户端的节点信息。

客户端配置

Debian 10 下客户端的安装流程、私钥公钥生成方法,和服务端的步骤类似,此处不再赘述。

创建配置文件,并添加内容:

1
sudo vim /etc/wireguard/wg0.conf

/etc/wireguard/wg0.conf

1
2
3
4
5
6
7
8
9
[Interface]
PrivateKey = 客户端私钥
Address = 10.0.0.2/24
DNS = 8.8.8.8[Peer]
PublicKey = 服务端公钥
AllowedIPs = 0.0.0.0/0
Endpoint = 服务器 IP 地址:服务器自定义端口

启动服务:

1
2
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

查看服务状态:

1
sudo systemctl status wg-quick@wg0

服务端再配置

在服务器上:

1
2
sudo systemctl stop wg-quick@wg0
sudo vim /etc/wireguard/wg0.conf

增加 [Peer] 信息,修改后总体如下:

/etc/wireguard/wg0.conf

1
2
3
4
5
6
7
8
9
10
11
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 服务端自定义端口
PrivateKey = 服务端私钥[Peer]
PublicKey = 客户端公钥
AllowedIPs = 10.0.0.2/32

启动服务:

1
sudo systemctl start wg-quick@wg0

至此,服务端、客户端配置已完成。


Debian 搭建 WireGuard 服务端相关推荐

  1. 如何在 MacOS 环境下搭建 SVN 服务端环境

    文章目录 在服务端创建资源仓库 资源仓库访问权限配置 给资源仓库添加用户 配置用户组及用户的权限 启动 SVN 服务器 停止 SVN 服务器 SVN 是一个使用十分广泛的开放源代码的版本控制系统.在 ...

  2. vue.js+koa2项目实战(四)搭建koa2服务端

    搭建koa2服务端 安装两个版本的koa 一.版本安装 1.安装 koa1 npm install koa -g 注:必须安装到全局 2.安装 koa2 npm install koa@2 -g 二. ...

  3. Debian搭建Samba服务

    Debian搭建Samba服务 安装服务 将用户注入到Samba组 在home目录下创建share共享文件 设置share文件的权限(读写可执行) 编译Samba文件 comment :共享名称 pa ...

  4. HTML+JS+websocket 实现联机“游戏王”对战(十)- 搭建游戏服务端

    目录: 游戏王联机卡牌对战 1 - 前言 游戏王联机卡牌对战 2 - 联机模式 游戏王联机卡牌对战 3 - 界面布局 游戏王联机卡牌对战 4 - 卡组系统 游戏王联机卡牌对战 5 - 卡片选中系统 游 ...

  5. 快速搭建Kerberos服务端及入门使用

    快速搭建Kerberos服务端及入门使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Kerberos是一种网络身份验证协议.它旨在通过使用秘密密钥加密为客户端/服务器应用程序提 ...

  6. Android搭建WebSocket服务端

    WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端.全双工就是指客户端和服务端可 ...

  7. 使用Eclipse和Tomcat搭建Android服务端

    作为一名Android开发者,不懂一点服务端的知识有时候真的不行.比如你做好了用户登录请求的功能,想找服务端验证一下是否正确.服务端同事告诉你他很忙,等他把接口写完了再验证.这时候呢,我们完全可以自己 ...

  8. 怎么在Win7服务器搭建SVN服务端

    怎么在Win7服务器搭建SVN服务端 今天码大夫给大家分享在Windows服务器上如何搭建SVN环境的详细步骤: 工具/原料 1.VisualSVN server 这是服务器端的安装应用程序,根据自己 ...

  9. nuxtjs+express+vue2+vuex搭建的服务端渲染(SSR)个人网站项目 1

    5se7en.com nuxtjs+express+vue2.0+vuex搭建的服务端渲染个人网站项目. github项目地址: https://github.com/se7en-1992... 项目 ...

最新文章

  1. matlab中imresize函数的用法,为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同
  2. MySQL之mysql客户端工作的批处理一些使用手法
  3. esp32 怎么分配freertos 堆栈大小_详解STM32单片机的堆栈
  4. codeforces 几道题目
  5. K/3 MRP运算数据不准的原因及解决方案
  6. 多路IO转接服务器 epoll
  7. 再读TCP/IP网络7层协议
  8. 1 jquery对checkbox的简单操作
  9. 机器学习中的数学基础相关知识总结
  10. 爬虫案例:利用python爬虫关键词批量下载高清大图
  11. java 数组 concat_JavaScript concat() 方法
  12. 概率论与数理统计(一)—— 联合概率、条件概率与边缘概率
  13. 记事本如何运行python代码_利用Python开发实现简单的记事本
  14. GRE tunnel 2
  15. 2022-2028全球与中国无线电远程单元市场现状及未来发展趋势
  16. VMware虚拟机内Ubuntu系统安装教程
  17. Android开发-窗口跳转
  18. CiteSpace学习笔记(七)——网络信息的查看
  19. 查询计算机u盘记录时间,怎么通过系统日志查看u盘的拔出时间
  20. 送给她最最浪漫的表白(Python代码实现)

热门文章

  1. hp9000 e25服务器 显示器,DIY瞎折腾 篇十五:又挽救了一台显示器-HP 2011X-附翻车过程...
  2. STM32驱动DS18B20温度传感器
  3. 时间复杂度 与 空间复杂度
  4. 贝叶斯概率在目标跟中的应用及CK方程推导(20.9.27)
  5. 看了功夫熊猫,非常不错。
  6. 10uec++多人游戏【开枪震动效果】
  7. SpringBoot_Themeleaf的配置
  8. encodeURI之URL中文参数问题
  9. spark ml 随机森林源码笔记二
  10. (开源)STC89c51结合ESP8266制作物联网环境监测系统+APP inventor制作手机App实时显示