Ubuntu安装Wireguard操作说明

2024-01-26 12:40

本文主要是介绍Ubuntu安装Wireguard操作说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Ubuntu安装Wireguard

  • 说明
  • 环境说明
    • Wireguard介绍
    • 安装Wireguard
    • 配置Wireguard Server
    • 创建Wireguard Server配置文件
    • 启动Wireguard Server
    • 配置Wireguard Client
    • 启动Wireguard Client
    • Wireguard Client添加主机路由表
    • 启动之后使用wg指令查看,显示如下表示连接成功
  • 注意事项

说明

	该笔记仅用于学习交流使用

环境说明

Ubuntu版本:4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Wireguard介绍

Wireguard官方链接地址:https://www.wireguard.com/
Wireguard源代码由开发者自我托管地址: https://git.zx2c4.com/WireGuard/
Wireguard GitHub 的镜像仓库:https://github.com/WireGuard
Wireguard支持系统:https://www.wireguard.com/install/

安装Wireguard

add-apt-repository ppa:wireguard/wireguard
apt-get update
apt-get install wireguard

配置Wireguard Server

**设置创建文件的默认权限**umask 077
**生成服务端Privatekey和Pubkey** 	 wg genkey | tee sprivatekey | wg pubkey > spublickey 
**生成客户端端Privatekey和Pubkey** 	 wg genkey | tee cprivatekey | wg pubkey > cpublickey 
**开启服务端ubuntu的转发功能** 找到这一行 #net.ipv4.ip_forward = 1 去掉注释符 “#” 修改为net.ipv4.ip_forward = 1立即生效指令如下sysctl -p

创建Wireguard Server配置文件

vi /etc/wireguard/wg0.conf ,添加以下内容
[Interface]Address = 10.0.0.1/24SaveConfig = truePostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o  ens3   -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o  ens3  -j MASQUERADEPostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o  ens3  -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o  ens3  -j MASQUERADEListenPort = 51820PrivateKey =   sprivatekey文件内容 
[Peer]PublicKey = cpublickey文件内容 AllowedIPs = 10.0.0.0/24

启动Wireguard Server

wg-quick up wg0

配置Wireguard Client

vi /etc/wireguard/wg0.conf ,添加以下内容
[Interface]ListenPort = 51821Address = 10.0.0.2PrivateKey =  cprivatekey文件内容 DNS = 8.8.8.8
[Peer]PublicKey =  spublickey文件内容                  AllowedIPs = 0.0.0.0/0Endpoint = 公网IP:端口号PersistentKeepalive = 25

启动Wireguard Client

wg-quick up wg0

Wireguard Client添加主机路由表

route add 公网IP dev ens3

启动之后使用wg指令查看,显示如下表示连接成功

在这里插入图片描述

注意事项

===》Wireguard支持的内核版本需要大于等于3.10
===》ens3为ubuntu的可上网网口
===》开启server端转发修改/etc/sysctl.conf文件,修改之后立即生效指令sysctl -pnet.ipv4.ip_forward=1net.ipv6.conf.all.forwarding=1

这篇关于Ubuntu安装Wireguard操作说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646835

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

Spring Boot Actuator使用说明

《SpringBootActuator使用说明》SpringBootActuator是一个用于监控和管理SpringBoot应用程序的强大工具,通过引入依赖并配置,可以启用默认的监控接口,... 目录项目里引入下面这个依赖使用场景总结说明:本文介绍Spring Boot Actuator的使用,关于Spri

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、