双语网站代码,怡美工业设计公司,凌云网招聘信息,没有做等保的网站不能上线对吗文章目录 前言一、服务器配置安装wireguard软件生成私钥公钥配置服务器参数配置服务器sysctl参数启动、停止服务端 二、用户端配置安装wireguard软件生成私钥公钥配置客户端参数启动、停止客户端配置服务开机启动 三、服务器添加、删除客户四、配置掉线自启动配置掉线自启动脚本… 文章目录 前言一、服务器配置安装wireguard软件生成私钥公钥配置服务器参数配置服务器sysctl参数启动、停止服务端 二、用户端配置安装wireguard软件生成私钥公钥配置客户端参数启动、停止客户端配置服务开机启动 三、服务器添加、删除客户四、配置掉线自启动配置掉线自启动脚本配置定时程序配置脚本sudo免密执行权限 结尾 前言
本文主要用来讲解如何配置wireguard服务器、客户端及掉线自启动的全套流程。
WireGuard 是一种轻量级的虚拟专用网协议旨在提供快速、安全、简单的网络连接。它是由 Jason Donenfeld 在 2015 年发明的并于 2018 年正式发布。
WireGuard 与其他常见的协议相比有许多优点如更小的代码库、更快的速度、更低的系统资源消耗、更简单的架构和更安全的加密方式。它通常用于个人电脑、服务器、移动设备等可以帮助用户保护其在线隐私、提高网络安全性、解除网络限制等。
WireGuard 使用了自己的加密协议使用了高效的数据包格式和高效的握手机制可以提高网络速度和效率。它还使用了新型的密钥管理方式可以更快地完成握手和通信。
总的来说WireGuard 是一种非常优秀的协议它提供了快速、安全、简单的网络连接可以帮助用户保护其在线隐私、提高网络安全性、解除网络限制等。
IPsec 和 Open微皮恩等大多数其他解决方案是几十年前开发的。安全研究人员和内核开发人员 Jason Donenfeld 意识到它们速度慢且难以正确配置和管理。
这让他创建了一个新的开源 微皮恩协议和解决方案它更加快速、安全、易于部署和管理。
WireGuard 最初是为 Linux 开发的但现在可用于 Windows、macOS、BSD、iOS 和 Android。它仍在活跃开发中。
除了可以跨平台之外WireGuard 的最大优点之一就是易于部署。配置和部署 WireGuard 就像配置和使用 SSH 一样容易。
一、服务器配置
安装wireguard软件
sudo apt update sudo apt install wireguard目前 WireGuard 已经被合并到 Linux 5.6 内核中了如果你的内核版本 5.6就可以用上原生的 WireGuard 了只需要安装 wireguard-tools 即可内核版本5.6可能需要首先更新内核否则可能会报错Unable to access interface: Protocol not supported
生成私钥公钥
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey生成的密钥保存在/etc/wireguard/privatekey和/etc/wireguard/publickey中
配置服务器参数
#创建编辑配置文件
sudo touch /etc/wireguard/wg0.conf
sudo nano /etc/wireguard/wg0.conf粘贴如下
[Interface]
Address 10.100.1.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 51800
PrivateKey SERVER_PRIVATE_KEY #服务器端生成的私钥使用/etc/wireguard/privatekey中的值替换SERVER_PRIVATE_KEY
使用如下命令获取网卡名称替换eth0
ip -o -4 route show to default | awk {print $5}
配置服务器sysctl参数
如果要正常使用wg0的转发需要启用电脑的ip转发使用你喜欢的编辑器打开文件/etc/sysctl.conf
添加或者取消注释行net.ipv4.ip_forward1
使用sudo sysctl -p 应用修改
启动、停止服务端
#启动服务端
$ sudo wg-quick up wg0## 输出如下
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.100.1.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE# 停止服务端
$ sudo wg-quick down wg0## 输出如下
[#] wg showconf wg0
[#] ip link delete dev wg0
[#] iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE校验服务端状态
sudo wg
## 输出
interface: wg0public key: ********************private key: (hidden)listening port: 51800二、用户端配置
安装wireguard软件
软件官方下载连接www.wireguard.com 由于greatwall的存在可以关注微信公众号机器人梦想家下载。 windows 64位安装 *amd64.msi
windows 32位安装 *x86.msi
windows arm安装 *arm64.msi
安卓安装 *.apk
ubuntu或debian使用命令安装sudo apt-get install wireguard
生成私钥公钥
使用wiregurad的工具wg genkey和wg pubkey生成公钥和私钥并保存在/etc/wireguard/目录。windows会自动生成记下来即可。
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
配置客户端参数
#创建编辑配置文件
sudo touch /etc/wireguard/wg0.conf
sudo nano /etc/wireguard/wg0.conf粘贴如下
[Interface]
PrivateKey CLIENT_PRIVATE_KEY #客户端生成的私钥
Address 10.100.1.2/32 #改为想给本机分配的ip[Peer]
PublicKey SERVER_PUBLIC_KEY #服务器端生成的公钥
Endpoint SERVER_IP_ADDRESS:51800 #服务器的公网IP和端口
AllowedIPs 10.100.1.0/24 #这里是限制只有10.100.1 网段的请求走WireGuard,不影响其它应用上网,设为0.0.0.0/0则是所有请求均走WireGuard
PersistentKeepalive 120 #握手时间每隔120s ping一次客户端替换其中的CLIENT_PRIVATE_KEY、SERVER_PUBLIC_KEY、SERVER_IP_ADDRESS按照自己本地生成的配置
多台client注意修改Address为不同的ip地址。
启动、停止客户端
#启动客户端
$ sudo wg-quick up wg0## 输出如下
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.100.1.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE# 停止客户端
$ sudo wg-quick down wg0## 输出如下
[#] wg showconf wg0
[#] ip link delete dev wg0
[#] iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE配置服务开机启动
sudo systemctl enable wg-quickwg0可以通过下边指令检查服务运行状态
sudo systemctl status wg-quickwg0三、服务器添加、删除客户
# 添加客户端
sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.100.1.2#删除客户端
sudo wg set wg0 peer CLIENT_PUBLIC_KEY remove可以通过在服务器端运行sudo wg查看client状态
sudo wg
## 输出
interface: wg0public key: ***********************private key: (hidden)listening port: 51800peer: ***********************endpoint: *.*.*.*:36875allowed ips: 10.100.1.2/32latest handshake: 10 seconds agotransfer: 392 B received, 184 B sent四、配置掉线自启动
配置掉线自启动脚本
掉线自启动一般只需要配置客户端
新建脚本用于检测是否掉线
touch /home/dev/Documents/pingwireguard.sh
chmod x /home/dev/Documents/pingwireguard.sh
vim /home/dev/Documents/pingwireguard.sh粘贴如下
#!/bin/sh
if ! ping -c 3 10.100.1.1 /dev/null 21 ;then
echo date The network is down! Now try restarting wg0!\n
sudo systemctl restart wg-quickwg0.service
else
echo date Wireguard network is alive.\n
fi配置定时程序
这里使用crontab定时呼叫校验脚本
$ crontab -e每隔10min执行一遍校验网络是否通畅增加条如下
*/10 * * * * /home/dev/Documents/pingwireguard.sh 配置脚本sudo免密执行权限
sudo visudo
## 增加如下,dev是你本地运行crontab的用户名
%dev ALL(ALL:ALL) NOPASSWD :/bin/systemctl restart wg-quickwg0.service请注意用户是否有执行root的权限若没有同时增加如下这句
sudo visudo#
# This file MUST be edited with the visudo command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin# Host alias specification# User alias specification# Cmnd alias specification# User privilege specification
root ALL(ALL:ALL) ALL
## 为你的用户增加sudo权限, 注意dev修改为你本地运行crontab的用户
dev ALL(ALL:ALL) ALL# Allow members of group sudo to execute any command
%sudo ALL(ALL:ALL) ALL
## 增加如下, 注意dev修改为你本地运行crontab的用户名
%dev ALL(ALL:ALL) NOPASSWD :/bin/systemctl restart wg-quickwg0.service# See sudoers(5) for more information on include directives:includedir /etc/sudoers.d
admin ALL(ALL) NOPASSWD:ALL结尾
至此结束所有的配置本文参考大量的博客进行汇总最终得到一套比较简单能够配置的方法可以应用于工程实际情况希望能对大家起到一些帮助。