首页 > 其他分享 >通过wireguard异地组网

通过wireguard异地组网

时间:2024-10-28 11:10:37浏览次数:3  
标签:wg 10.0 Relay iptables sudo wireguard 异地 wg0 组网

诉求

希望通过wireguard建设自己的虚拟网络,完成节点之间的互访与路由转发。

                    Cloud ┌─────────┐ public:1.2.3.4
           ┌─────────────►│  Relay  │ wg:10.0.0.1   
           │              └───────▲─┘               
           │                      │                 
           │                      │                 
┌──────────┼────────────────┐     │                 
│ Home     │                │     │                 
│       ┌──┼──┐ 192.168.1.7 │     │                 
│       │ NUC │ wg:10.0.0.2 │     │                 
│       └──┬──┘             │     │                 
│          │                │     │                 
│       ┌──▼───┐ 192.168.1.8│ ┌───┴────┐wg:10.0.0.3 
│       │Server│            │ │ Laptop │            
│       └──────┘            │ └────────┘            
└───────────────────────────┘  Outside              

在家庭终端NUC,公网云服务器Relay和个人电脑Laptop都安装wireguard客户端并加入虚拟网络。

实现在server不安装任何软件的前提下通过laptop对家庭server的访问。

实现

前提:公网服务器Relay必须有公网地址且能被NUC和Laptop访问。

公网服务器Relay

作为中继节点,公网地址为1.2.3.4分配虚拟地址10.0.0.1

sudo apt install wireguard
# 生成公私钥
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
# 复制privatekey备用
sudo vim /etc/wireguard/wg0.conf

配置内容,interface是虚拟网络地址,其中eth0要换成自己的出口网卡

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = YOUR_SERVER_PRIVATE_KEY
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

打开ip4转发(重要!)

sudo vi /etc/sysctl.conf
# 取消注释以下行
net.ipv4.ip_forward=1
# 保存并应用
sudo sysctl -p
# 防火墙放行udp端口51280(如果启用了ufw)
sudo ufw allow 51820/udp

本地配置生效

# 限制权限
sudo chmod 600 /etc/wireguard/*
# 启动接口
sudo wg-quick up wg0
# 检查接口状态和配置
sudo wg show wg0
# 验证接口状态
ip a show wg0
# 开机自启动
sudo systemctl enable wg-quick@wg0

到此公网服务器Relay设置完成

家庭跳板机NUC

作为跳板节点内网地址192.168.1.7分配虚拟地址10.0.0.2

类似Relay安装wireguard并开启ipv4转发,生成公钥和私钥填写wg0.conf

注意Peer部分的配置差异,需要填入公网Relay服务器的信息

[Interface]
PrivateKey = YOUR_CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = YOUR_SERVER_PUBLIC_KEY
Endpoint = 1.2.3.4:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 30

外网终端Laptop

和NUC设置相同,分配虚拟地址10.0.0.3并对Peer Relay添加192.168.1.0/24的路由。

[Interface]
PrivateKey = YOUR_CLIENT_PRIVATE_KEY
Address = 10.0.0.3/24

[Peer]
PublicKey = YOUR_SERVER_PUBLIC_KEY
Endpoint = 1.2.3.4:51820
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24
PersistentKeepalive = 30

将Peer添加到Relay

为实现双向互访,还需要在Relay放行其他Peer

sudo wg set wg0 peer ${NUC公钥} allowed-ips 10.0.0.2/32,192.168.1.0/24
sudo wg set wg0 peer ${Laptop公钥} allowed-ips 10.0.0.3/32

现在Laptop可以直接ping通192.168.1.8

查疑

关于AllowedIPs的理解

对于客户端:修改当前设备的路由表,将AllowedIPs命中的流量指向wg0网卡。

对于中继器:告诉wg0命中AllowedIPs的流量从当前Peer流出。

能够ping通无法ssh

ping通证明路由没问题,使用telnet命令排查laptop能够收到来自server的握手消息

$ telnet 192.168.1.8 22
Trying 192.168.1.8...
Connected to 192.168.1.8.
Escape character is '^]'.
SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.5

Reddit指出ssh卡死可能是wg0的MTU设置太大,Relay使用ip addr | grep mtu查看已有网卡设置

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: enp1s0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
18: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 65456 qdisc noqueue state UNKNOWN group default qlen 1000

wg0.conf修改为MTU = 1420后问题解决,注意要先断开wg否则配置修改被覆盖

sudo wg-quick down wg0
sudo vi /etc/wireguard/wg0.conf
# [Interface]
# Address = 10.0.0.1/24
# MTU = 1420
sudo wg-quick up wg0

参考

使用 WireGuard 组网实现内网穿透 | varkai

Only SSH not working over Wireguard, everything else is : r/WireGuard

Wireguard Optimal MTU

标签:wg,10.0,Relay,iptables,sudo,wireguard,异地,wg0,组网
From: https://www.cnblogs.com/azureology/p/18510040

相关文章

  • 无人机之自组网通信技术篇
       无人机的自组网通信技术是一种利用无人机作为节点,通过无线通信技术实现节点间自主组网、动态路由和数据传输的技术。一、技术原理与特点技术原理:无人机自组网技术基于自组织网络(Ad-HocNetwork)的原理,通过无线通信技术实现无人机之间的自主组网和通信。这种技术无需依......
  • 组网技术-vlan+DHCP组网[华为、华三]
    配置概述如上图所示:LSW4是三层交换机,我们将会在LSW4上创建VLAN与DHCP服务下面两台终端使用DHCP服务即可连接由于有VLAN因此默认两个终端是无法进行通信的,所以利用vlan接口的ip地址充当两台终端的网关,这样双方就能进行通信左边:网络地址192.168.1.0/24网关192.168.1.254......
  • 【华三】VXLAN典型组网-集中式网关EVPN实验
    【华三】VXLAN典型组网-集中式网关EVPN实验EVPN在VXLAN的应用EVPN的常用路由类型VXLAN的相关术语VXLAN隧道工作模式L2Gateway:二层转发模式IPGateway:三层转发模式VXLAN集中式网关实验需求拓扑R1R2R3R4SW1SW2PC测试检查报文分析(抓R2的G0/0接口即可)查看L2VPN的Tunnel......
  • 揭秘!如何设计高可用、高性能、高扩展的异地多活系统?【转】
     异地多活是分布式系统架构设计的一座高峰,当业务系统走到需要考虑异地多活这一步,其体量和复杂度都会达到很高的水准。接入层、逻辑层、数据层的三层架构,基本上是每个业务都会拥有的基础架构形态,而三层架构的关键在于数据层,本文将从数据层切入探讨异地多活对于基础架构设计的影响......
  • 【华三】【华三】VXLAN典型组网-集中式网关配置实验
    【华三】VXLAN典型组网-二层组网静态配置实验VXLAN的相关术语VTEP(VXLANTunnelEndPoint)VXLAN隧道核心设备VSI(VirtualSwitchInstance)VSIinterfaceVXLANsegmentVNI(VXLANNetworkIdentifier)AC(AttachmentCircuit)VXLAN隧道工作模式L2Gateway:二层转发模式IPGateway:......
  • 如何快速建立自己的异地互联的远程视频监控系统,通过web浏览器或手机可以直接查看公网
    目录一、需求二、方案2.1、计划方案2.2、实施准备2.2.1所需配置的产品和服务2.2.1.1云主机2.2.2.2视频监控平台软件2.2.2.3客户端访问2.2.2所需配置的人员三、选择公网的云视频监控接入平台3.1、云视频监控接入平台的好处3.1.1可以根据需要灵活配置硬件资源3.1.2......
  • 企业网络服务搭建(一)OpenWRT uhttpd ddns firewall wireguard
    简介:最近要给媳妇的企业重新搞一搞信息化,这个也写个系列文章吧。为什么要写openwrt呢?小公司,搞不起托管、搞不起上云。也不算搞不起,主要是自己手边各种垃圾材料多啊。自己家,公司,父母家,3处家用宽带。本着垃圾佬的心态,能省则省。其实更多的是模拟大型异地办公需求的一种探索。Ope......
  • inotifywait监控文件夹内容变化,实时异地同步
    inotifywait监控文件夹内容变化,实时异地同步1.服务器规划2.实现效果演示3.服务器初始化3.1主机名修改3.2hosts配置3.3免密认证配置3.4inotify、rsync安装3.5验证是否安装完成4.脚本1.服务器规划主机名IP描述main172.16.32.3主服务器backup172.16.32.4数据......
  • 【华三】ADVPN的Full-Mesh组网实验
    【华三】ADVPN的Full-Mesh组网实验实验需求配置拓扑ISP基础配置VAMServer基础配置AAA设置指定谁是Hub、SpokeHub基础配置配置VAMClientIPSec安全策略隧道配置ADVPNSpoke1基础配置配置VAMClientIPSec安全策略配置advpn隧道Spoke2基础配置配置VAMClientIPSec安全......
  • wireguard进行组网
    logo成就你的写作梦想wireguard进行组网 it之承影含光 简书作者2024-06-1315:18IP属地:上海需求:在家中访问公司网络 1.在服务器中安装wireguard1.1下载脚本 curl-Ohttps://raw.githubusercontent.com/atrandys/wireguard/master/wg_mult.sh&&chmod+xwg_m......