| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 基于树莓派的WireGuard安装配置与使用 -> 正文阅读 |
|
[网络协议]基于树莓派的WireGuard安装配置与使用 |
基于树莓派的WireGuard安装配置与使用关于WireGuard简介WireGuard 是新一代的虚拟专用网协议,相比于 IPSec 和 OpenVPN 等软件,特点是简单、安全、高效,源码总共不到四千行代码。由于过于优秀,已经被吸收进了 Linux 5.6+ 的内核中。 工作原理WireGuard 以 UDP 实现,但是运行在第三层 —— IP 层。每个 Peer 都会生成一个 WireGuard 项目官方网站 https://www.wireguard.com/ 在服务器端部署WireGuard(本例为基于Oracle Cloud的Ubuntu 20.04)WireGuard 跨平台参照官方给出的快速安装指南 https://www.wireguard.com/install/ 注:如果安装失败请尝试一下升级更新
服务器端环境以Ubuntu系统为例生成公钥、私钥
打印输出私钥
打印输出公钥
编辑并保存 wg0 配置文件 wg0.conf
wg0.conf 配置文件内容如下: Address = 10.200.200.1(可根据需要自行设定) ListenPort = 监听端口 51820(根据自己需求设定) PrivateKey = 服务器私钥 PublicKey = 连接节点公钥(由客户端生成) AllowedIPs = VPN 隧道的内网 IP 段(必须与服务器自行设定的Address在同一网络段内)
设置服务器的 NAT 流量转发
找到这一行 net.ipv4.ip_forward = 1去掉注释符“#”(如无对应选项,自行添加即可)
执行sysctl并生效
在服务器端添加虚拟网卡 wg0,设置隧道 IP 和 iptables 规则
注:iptables设置不完全仅包含以上指令,需执行'sudo iptables -L'查看当前防火墙状态,如有对应端口未打开或拒绝icmp报文访问等规则,需要自行打开或删除,否则wireguard将不能正常使用,现将本例使用的服务器防火墙INPUT和FORWARD链粘贴如下
另:服务器使用的端口一般还需在后台打开;阿里云及腾讯云的国内服务器也可能会出现不能正常使用wireguard的情况 配置完毕后,可用以下指令保存防火墙设置
检查wg设置是否正常
正常情况下应该输出以下内容
服务器端设置完成 另:可执行以下命令,设置为开机自动启动
在客户端部署WireGuard生成公钥、私钥
打印输出私钥
打印输出公钥
wg0.conf 配置文件内容如下ListenPort = 监听端口 51820 PrivateKey = 本地客户端私钥 PublicKey = 服务器端公钥(由服务器端生成) AllowedIPs = VPN 隧道的内网 IP 段 Endpoint = 远程服务器的公网 IP(即ssh连接服务器时用的IP地址) 和端口 PersistentKeepalive = 连接心跳包的唤醒间隔(可不设置)
在客户端,添加虚拟网卡 wg0
设置 IP 和路由这一部分根据各自路由情况的不同,执行的命令也有所不同,但是一般来说默认的路由表是可以直接使用的,不需要配置;如不能正常使用,则使用'ip route'+'add或del',自行更改至可使用的状态即可,以下粘贴出本例使用到的树莓派(IP为192.168.3.242)的路由情况
注:150.136.105.97为服务器的公网IP 客户端设置完成,Ping 测试 VPN 隧道
ping输出如下
说明 VPN 隧道已通 用 curl 命令测试隧道的流量转发状态
显示 IP 为服务器的公网 IP
curl 获取到了服务器的公网 IP,流量转发成功。 参考在 Ubuntu 部署 VPN 隧道 WireGuard — Steemit 有任何问题欢迎留言,本人看到后会第一时间帮忙解决,非常感谢观看,祝配置顺利。另外转载请注明出处,谢谢。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:23:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |