wayne
wayne
Published on 2025-05-02 / 5 Visits
0
0

WireGuard 内网互访搭建教程

基础概念

WireGuard 是一款高性能的VPN协议,通过UDP协议传输,适用于建立安全的内网穿透隧道。如果你想在不同网络,不同设备之间自由访问,并且通过内网保证隐私安全性,WireGuard 是个不错的选择。

服务端配置

对于服务端的要求是一个拥有公网IP的系统,可以开一个便宜的云服务器,然后安装使用 docker-compose 部署服务端。

services:
  wireguard:
    image: linuxserver/wireguard  # 使用 LinuxServer 维护的 WireGuard 镜像
    container_name: wg           # 指定容器名为 wg
    hostname: wireguard          # 设置容器主机名
    restart: unless-stopped      # 异常退出时自动重启
    environment:
      - TZ=Asia/Shanghai        # 时区设置
      - SERVERPORT=51820        # 【容器内部】监听的 WireGuard 端口(必须与下方 ports 映射的右侧端口一致)
      - ALLOWEDIPS=123.123.9.0/24  # 允许通过 VPN 访问的客户端 IP 段
      - PUID=1000                # 文件权限用户 ID
      - PGID=1000                # 文件权限组 ID
      - SERVERURL=oak.xxywithpq.cn  # 服务器公网域名/地址(需解析到公网IP)
      - PEERS=10                # 自动生成 10 个客户端配置(peer1~peer10)
      - PEERDNS=auto            # 客户端自动获取 DNS
      - INTERNAL_SUBNET=123.123.9.0  # VPN 内部子网地址
    volumes:
      - /home/ubuntu/wireguard/config:/config  # 配置存储目录(含服务端/客户端配置)
      - /home/ubuntu/wireguard/modules:/lib/modules  # 内核模块映射(需内核支持)
    ports:
      - "54444:51820/udp"       # 端口映射(宿主端口:容器端口)
    cap_add:                    # 必需权限
      - NET_ADMIN               # 网络管理权限
      - SYS_MODULE              # 内核模块加载权限

防火墙设置

主机防火墙开放 54444/UDP


生成的文件结构

/home/ubuntu/wireguard/config/
├── wg0.conf          # 服务端主配置文件
├── peer1/            # 客户端1配置目录
│   ├── peer1.conf    # 客户端配置文件
│   ├── peer1.png     # 二维码连接图
│   └── peer1_private.key # 客户端私钥
└── ...              # 其他 peer 目录

客户端配置(以Windows为例)

安装客户端

根据客户端系统下载对应客户端

官网下载:https://www.wireguard.com/install/

配置peer

前面服务端生成了10个peer,任选一个peer,比如 peer2.conf ,导入到客户端中(配置名个人原因改成oak-peer2)。

如果接收和发送都有流量,基本上客户端就已经加入到局域网中,该客户端在局域网中的地址为 123.123.9.3

验证连通性

假设另一台 123.123.9.2 已经加入局域网,通过ping可知,两台客户端已经能够相互访问。


Comment