为Ubuntu22.04系统配置WireGuard客户端

2024-03-13 03:50

本文主要是介绍为Ubuntu22.04系统配置WireGuard客户端,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于Ubuntu客户端的配置,我个人认为是最难的,因为我对Linux只是处于了解状态,而且ubuntu一般作为服务器端使用,对于客户端的资料基本没有,但是笔者最近安装了Ubuntu的最新操作系统Ubuntu22.04桌面版,感觉很惊艳啊,在micros Egde浏览器的加持下,Ubuntu系统也基本上够用了,所以很想为Ubuntu系统安装一个WireGuard客户端。

 

按照前面的规则,先在服务器端创建好ubuntu客户端配置文件,然后下载到ubuntu系统本地,将文件名重命名为wg0.conf,并保存在‘etc/wireguard ’文件夹,若没有路径则以以下命令创建:mkdir -p /etc/wireguard,必须要有这一步,因为后面用得到。

WireGuard-Ubuntu客户端可以通过终端安装,也可以从官网下载.deb客户端和wirguard-tool.deb,再通过软件中心安装。

安装好后就可以在终端操作了:

  1. 最高权限登录终端:

    sudo -i

  2. 提示输入密码:

    [sudo] mrhou 的密码:

  3. 虽然导入了配置文件,但是直接运行的时候出错了,提示网络错误,后来查阅各方资料发现对于Linux系统,必须要设定本机网络参数,具体请看下文。

  4. 查看本机网络,对于使用公共 IP 地址通过 SSH 或其他协议访问的远程对等方,需要向对等方的文件添加一些额外的规则。这些规则将确保您在连接系统时仍可以从隧道外部连接到系统。否则,当建立隧道时,通常在公共网络接口上处理的所有流量将无法正确路由以绕过隧道接口,从而导致无法访问的远程系统:

    输入:

    ip route list table main default

    输出:

          default dev wg0 scope link 

           default via 192.168.45.47 dev wlp1s0 proto dhcp metric 600     

     记下网关突出显示的 IP 地址以供以后使用,并记下网卡号wlp1s0 当然每个人的设备名称可能不同。如果是这样,请在命令中替换它。

  5. 输入:

    ip -brief address show wlp1s0   

    输出:

    wlp1s0           UP        192.168.45.40/24                  240e:44d:5414:502:58b0:27f0:1da5:492e/64  240e:44d:5414:502:28b8:eb1f:fc41:b387/64 fe80::a547:c15d:61b5:4d78/64

  6. 输入:

    sudo nano /etc/wireguard/wg0.conf

     编辑 wg0.conf文件将得到的网络信息以固定格式加入:PostUp = ip rule add table 200 from xxx.xxx.xxx.xxx(本机IP地址),PostUp = ip route add table 200 via xxx.xxx.xxx.xxx(网关IP地址),PreDown = ip rule delete table 200 from xxx.xxxx.xxx.xxx(本机IP),PreDown = ip route delete table 200 via xxxx.xxx.xxx.xxx(网关IP地址),并保存,这些线路将创建自定义路由规则,并添加自定义路由以确保到系统的公共流量使用默认网关。

    如以下格式:

    [Interface]PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxAddress = 10.0.9.5/24DNS = 114.114.114.114PostUp = ip rule add table 200 from 192.168.222.87PostUp = ip route add table 200 default via 192.168.208.1PreDown = ip rule delete table 200 from 192.168.222.87PreDown = ip route delete table 200 default via 192.168.208.1[Peer]PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxPresharedKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAllowedIPs = 10.0.9.0/24PersistentKeepalive = 25Endpoint = xxx.xxx.xxx.xxx:xxxxx

  7. 如果您通过VPN路由所有流量并设置了DNS转发,则需要在启动隧道之前在WireGuard对等体上安装‘resolvconf‘程序。

    输入:

    sudo apt install resolvconf     #安装resolvconf 程序

  8. 重启wg0服务:

    输入:

    sudo wg-quick down wg0         #关闭隧道wg0

    输出: [#] ip link delete dev wg0      [#] resolvconf -d tun.wg0 -f

    输入:

    sudo wg-quick up wg0           #重新开启隧道wg0

      

 

8.输入:sudo wg      # 您可以使用此命令检查对等体上隧道的状态               

 

看到上面的信息基本可以确定客户端已成功开启,也可以通过WireGuard服务器页面查看客户端或者ping命令查看是否正常运行:

 

 

这篇关于为Ubuntu22.04系统配置WireGuard客户端的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Redis客户端工具之RedisInsight的下载方式

《Redis客户端工具之RedisInsight的下载方式》RedisInsight是Redis官方提供的图形化客户端工具,下载步骤包括访问Redis官网、选择RedisInsight、下载链接、注册... 目录Redis客户端工具RedisInsight的下载一、点击进入Redis官网二、点击RedisI

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re