wireguard windows\linux版本client\server的配置
本文实现三台机器的互联,一台server端,二台客户端,系统均为win,server win10, client 一台win7,一台win10,开源地址:可以下载windows ,mac ,linux ,android各种版本
WireGuard · GitHub
我们下使用的是wireguard-windows版本
windows版本这个既可以当服务端,也可以当客户端来用。首先我们配置一下服务端
配置如下:
服务段配置如下:
[Interface]
PrivateKey = gKyDkJ17/xrc/8X7RQDiJpnVMQoCMGkXGbvonLntxXg=
ListenPort = 55555
Address = 10.254.0.1/24
[Peer]
PublicKey = +iYeKrWo54FskCVmix1rLOXWfnnO4FPnS0J2SNZcWkU=
AllowedIPs = 10.254.0.2/32[Peer]
PublicKey = osB5o/qRjglwcnmCCHEAPk23G23l/XAWJoRCnjfnDAI=
AllowedIPs = 10.254.0.3/32
Client2端如下
[Interface]
PrivateKey = 4Gp4c+SNuZ2HAfD2qQ4JxyTF+OhW+WqE0A/mKLUZa3Y=
Address = 10.254.0.2/32
DNS = 114.114.114.114
[Peer]
PublicKey = wpCeLCeoTsV9Q3VG7vJnklNxf3qAt53S0vyMPSVaGwA=
AllowedIPs = 0.0.0.0/0
Endpoint = 10.10.10.11:55555
PersistentKeepalive = 25
Client3端如下
[Interface]
PrivateKey = qANM2T7N/675+zFyRucuOGBtRIegLoTJphdXoKiJAXo=
Address = 10.254.0.3/32
DNS = 114.114.114.114
[Peer]
PublicKey = wpCeLCeoTsV9Q3VG7vJnklNxf3qAt53S0vyMPSVaGwA=
AllowedIPs = 0.0.0.0/0
Endpoint = 10.10.10.11:55555
PersistentKeepalive = 25
这样当client2,3连通时,他们所有的IP就都走server了。但是发现打开baidu.com打不开,还要在server上面设定一下
1, 管理员 身份打开PowerShell(一定是powershell哦)
2,查找刚创建的虚拟交换机的接口索引。
可以通过运行 Get-NetAdapter
来查找接口索引
你的输出应类似下面的形式:
3,使用 New-NetIPAddress 配置 NAT 网关。
New-NetIPAddress -IPAddress <NAT Gateway IP> -PrefixLength <NAT Subnet Prefix Length> -InterfaceIndex <ifIndex>
若要配置网关,你将需要一些有关你的网络的信息:
IPAddress - NAT 网关 IP 指定要用作 NAT 网关 IP 的 IPv4 或 IPv6 地址。
常规形式将为 a.b.c.1(例如 172.16.0.1)。 尽管最后一个位置不一定必须是.1,但通常是(基于前缀长度)通用网关 IP 为 192.168.0.1
PrefixLength -- NAT 子网前缀长度定义的 NAT 本地子网大小(子网掩码)。 子网前缀长度将介于 0 到 32 之间的一个整数值。
0 将映射整个 Internet,32 则只允许一个映射的 IP。 常用值范围从 24 到 12,具体要取决于多少 IP 需要附加到 NAT。
常用 PrefixLength 为 24 -- 这是子网掩码 255.255.255.0
InterfaceIndex -- ifIndex 是你在上一步中确定的虚拟交换机的接口索引。
运行以下内容来创建 NAT 网关:
New-NetIPAddress -IPAddress 10.254.0.2 -PrefixLength 24 -InterfaceIndex 79
这时查看server配置ipv4时 就会有了ip地址
使用 New-NetNat 配置 NAT 网络。
下面是常规命令:
PowerShell复制
New-NetNat -Name <NATOutsideName> -InternalIPInterfaceAddressPrefix <NAT subnet prefix>
若要配置网关,你将需要提供一些有关网络和 NAT 网关的信息:
Name - NATOutsideName 描述 NAT 网络的名称。 将使用此参数删除 NAT 网络。
InternalIPInterfaceAddressPrefix - NAT 子网前缀同时描述上述 NAT 网关 IP 前缀和上述 NAT 子网前缀长度。
常规形式将为 a.b.c.0/NAT 子网前缀长度
综上所述,对于本示例,我们将使用 192.168.0.0/24
对于我们的示例,运行以下命令以设置 NAT 网络
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 10.254.0.0/24
当再次执行下面命令时
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 10.254.0.0/24
会报错,因为已经生成了
使用NetNat可以查看已经建立好的 NAT 网络
使用Remove-NetNat可以清空Nat网络
这样,客户端所有上网的访问都是经过了10.10.10.11来上网了。
如果有些网站不想经过10.10.10.11来使用可以改进
[Interface]
PrivateKey = 4Gp4c+SNuZ2HAfD2qQ4JxyTF+OhW+WqE0A/mKLUZa3Y=
Address = 10.254.0.2/32
[Peer]
PublicKey = wpCeLCeoTsV9Q3VG7vJnklNxf3qAt53S0vyMPSVaGwA=
AllowedIPs = 0.0.0.0/0
Endpoint = 10.10.10.11:55555
PersistentKeepalive = 25
注意替换PublicKey为计算机A的公钥,Endpoint为计算机A的IP地址,PersistentKeepalive为保持连接的时间,单位为秒。
AllowedIPs设置为0.0.0.0/0的含义为路由此计算机的所有流量至私有网络。
PersistentKeepalive该参数可不设置,但设置了该参数,则客户端会在每次连接后发送心跳包,保持连接。
LINUX 版本
服务端:
apt update
apt install wireguard
apt install resolvconf
- 验证是否安装成功:
modprobe wireguard && lsmod | grep wireguard
cd /etc/wireguard/
- 生成服务端和客户端的公钥私钥
wg genkey | tee sprivatekey | wg pubkey > spublickey wg genkey | tee cprivatekey | wg pubkey > cpublickey
spublickey 是服务端的公钥 sprivatekey是服务端的私钥, cpublickey 是客户端的公钥 cprivatekey是客户端的私钥
- 打开防火墙转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
8.生成服务端配置文件
echo "[Interface]
PrivateKey = $(cat sprivatekey)
Address = 10.254.0.1/24
#如果你的服务器主网卡名称不是 eth0 ,那么请修改下面防火墙规则中最后的 eth0 为你的主网卡名称,可用ens33或者用ip a 命令进行查看
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
#端口号55555是随意的,但是要在防火墙上打开
ListenPort = 55555
DNS = 114.114.114.114
MTU = 1420
#[Peer] 代表客户端配置,每增加一段 [Peer] 就是增加一个客户端账号
[Peer]
PublicKey = $(cat cpublickey)
AllowedIPs = 10.254.0.2/32"|sed '/^#/d;/^\s*$/d' > wg0.conf
9,生成客户端配置文件
echo "[Interface]
PrivateKey = $(cat cprivatekey)
Address = 10.254.0.2/24
DNS = 114.114.114.114
MTU = 1420
[Peer]
PublicKey = $(cat spublickey)
# 服务器地址和端口,下面的 X.X.X.X 记得更换为你的服务器公网IP,端口请填写服务端配置时的监听端口
Endpoint = X.X.X.X:55555
AllowedIPs = 0.0.0.0/0, ::0/0
PersistentKeepalive = 25"|sed '/^#/d;/^\s*$/d' > client.conf
10,启动Wireguard
wg-quick up wg0
11,停止Wireguard
wg-quick down wg0
12,查看Wireguard状态
wg
13,如果是云服务器,安全规则记得增加对应端口48888
14,配置多用户
#重新生成一对客户端密匙
#cprivatekey1 为客户端私匙,cpublickey1 为客户端公匙
wg genkey | tee cprivatekey1 | wg pubkey > cpublickey1
#服务器上执行添加客户端配置代码(新增一个 [peer]):
#$(cat cpublickey1) 这个是客户端公匙,10.254.0.3/32 这个是客户端内网IP地址,按序递增最后一位(.3),不要重复
wg set wg0 peer $(cat cpublickey1) allowed-ips 10.254.0.3/32
wg-quick save wg0
#生成客户端配置文件1
echo "[Interface]
PrivateKey = $(cat cprivatekey1)
Address = 10.254.0.3/24
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = $(cat spublickey)
Endpoint = X.X.X.X:55555
AllowedIPs = 0.0.0.0/0, ::0/0
PersistentKeepalive = 25"|sed '/^#/d;/^\s*$/d' > client1.conf
配置后需要重启服务
wg-quick down wg0
wg-quick up wg0
设置开机启动
systemctl enable wg-quick@wg0
取消开机启动
systemctl disable wg-quick@wg0
linux配置wirguard原文链接:https://blog.csdn.net/weixin_43805459/article/details/120163031
另外在腾讯云上使用上面的方法配制时有问题,因为腾讯云的服务器上的eth0对应的IP没有对应真实IP存在问题
wireguard windows\linux版本client\server的配置相关推荐
- 【Tableau server 日常运维19】Linux版本Tableau Server视图出现如下图乱码解决方案
Linux版本Tableau Server视图出现如下图乱码解决方案 第一步检查linux系统当前语言包及已安装语言环境 如果是en_us.UTF-8,请安装为下图zh_cn.UTF-8 重启服务器如 ...
- Redis在Windows+linux平台下的安装配置(转)
window平台Redis安装 下载地址: http://code.google.com/p/servicestack/wiki/RedisWindowsDownload Redis文件夹有以下几个文 ...
- linux下sqlmap安装教程,(转)Sqlmap官网下载与安装教程[windows/linux版本]
转自:http://www.vuln.cn/2000 sqlmap的功能与强大性不必多言,方便大家下载,给大家整理了下sqlmap最新版的官网与github下载地址. 官网下载地址 github下载 ...
- 配置Linux版本teamviewer
背景 如公司无法提供VPN,且需要远程连办公网,teamviewer一定是最适合该场景,本人长期使用,当然是windows系统下,有些场景,例如给系统合作方提供远程连接,以方便他们对自家产品提供配置. ...
- MySQL在Windows和Linux平台上多版本多实例安装配置方法(5.5、5.6、5.7、8.0)
MySQL在Windows和Linux平台上多版本多实例安装配置方法(5.5.5.6.5.7.8.0) Linux下MySQL 5.5.5.6和5.7的RPM.二进制和源码安装 参考: http:// ...
- windows linux 共享鼠标,在Ubuntu/Windows下配置Synergy-键盘鼠标共享
Synergy能做什么 Synergy是一款能够让使用者仅用一套键盘鼠标,在包括 Windows . Linux . Mac OS 等不同的系统上安装它,并且在设定好主从关系后,就能够同时操控多个电脑 ...
- Windows Server 2016 配置指南 全系列
配置 和 Linux 平台不一样,往往我们使用 Windows Server 都会选择有 GUI 的图形化版本(高手用 Core 也不用看我半吊子的教程了),而且 Windows 又自身占了一部分内存 ...
- windows + Linux 自定义模板配置 怎么使用自定义规范管理器
转载: https://www.cnblogs.com/itfat/p/8342938.html win2008以上的系统,在vmware esxi5.5里怎么使用自定义规范管理器?sysprep 经 ...
- Linux环境——MySQL安装及配置(5.7版本)
数据库安装包下载地址:https://dev.mysql.com/downloads/mysql/ 选择适合自己的版本,我的环境是Linux Red Hat Enterprlse Linux (64 ...
最新文章
- 005_Spring的属性注入
- noip模拟赛 Chtholly Nota Seniorious
- 图像识别 43个模型
- Qt Linguist基于文本ID的翻译
- 【maven install报错】Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
- 吴恩达机器学习之单变量线性回归实现部分
- Python基础——isupper()方法和islower()方法
- DNSPOD实现DDNS动态域名解析功能
- centos7 mysql dump还原_CentOS 7.6使用mysqldump备份恢复MariaDB
- nginx 配置基于域名的虚拟主机
- 临别给《生活大爆炸》做个台词数据分析,你猜谢耳朵最爱说什么?
- GnomeSort(侏儒排序)——C语言实现
- [telink sig mesh] 周期Publish
- java获取文件后缀_Java获取文件后缀的两种方式
- 简析穷举算法,及其简单应用
- html中定义动画anima,css中animation怎么用
- 【渝粤题库】陕西师范大学111119 统计学作业
- Markdown语法002:引用
- 安搭Share:三星接班人李在镕或成韩方最富股东,持有票市值近百亿美元
- linux系统的烤机软件,NVIDIA英伟达 GeForce8/9/100/200/300/400/500/GeForce 600系列显卡Linux驱动...