惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
S
Secure Thoughts
I
Intezer
Project Zero
Project Zero
Stack Overflow Blog
Stack Overflow Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Full Disclosure
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
人人都是产品经理
人人都是产品经理
博客园_首页
J
Java Code Geeks
Recorded Future
Recorded Future
K
Kaspersky official blog
GbyAI
GbyAI
S
Schneier on Security
The Cloudflare Blog
Spread Privacy
Spread Privacy
C
Cisco Blogs
The Hacker News
The Hacker News
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
Know Your Adversary
Know Your Adversary
T
Tenable Blog
A
Arctic Wolf
Blog — PlanetScale
Blog — PlanetScale
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
O
OpenAI News
Last Week in AI
Last Week in AI
B
Blog RSS Feed
T
Troy Hunt's Blog
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
Vercel News
Vercel News
量子位
The Register - Security
The Register - Security
Google Online Security Blog
Google Online Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
U
Unit 42
Security Archives - TechRepublic
Security Archives - TechRepublic
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间 在WSL2中安装CUDA支持 | 泠泫凝的异次元空间 MinIO 集群部署 | 泠泫凝的异次元空间 vmware 虚拟化平台备份工具 Veeam 12 安装及配置 ubuntu 24.04 安装 nVidia 驱动后网卡消失 XMRig 自编译 | 泠泫凝的异次元空间 云桌面通过组策略统一体验配置 | 泠泫凝的异次元空间 Fortigate SSLVPN 无法连接内网 VNC 服务器 CentOS 7 使用镜像作为本地源并将自身作为YUM源服务器 | 泠泫凝的异次元空间 CentOS 7 离线更新 OpenSSH 服务 使用KubeKey离线部署Kubernetes | 泠泫凝的异次元空间 使用PGP对消息进行签名 | 泠泫凝的异次元空间 禁止MinIO展示桶内文件列表 | 泠泫凝的异次元空间 华为 Fusion Access 云桌面部署 | 泠泫凝的异次元空间 vmware Horizon 模板机部署 | 泠泫凝的异次元空间 vmware Horizon 云桌面与云应用部署 | 泠泫凝的异次元空间 Citrix XenApp 云应用交付 | 泠泫凝的异次元空间 Citrix XenDesktop 云桌面部署 | 泠泫凝的异次元空间 PVE LVM 扩容 | 泠泫凝的异次元空间 Linux 网络聚合(bond方式) | 泠泫凝的异次元空间 Citrix XenServer 7.2 部署教程 | 泠泫凝的异次元空间 在 Windows Server 2019 上安装 AMD 显卡驱动 openEuler 安装并使用 EPEL 源 | 泠泫凝的异次元空间 从已有Linux系统创建带桌面环境的Docker镜像 | 泠泫凝的异次元空间 下载联想原厂镜像及解密 | 泠泫凝的异次元空间 在基于 arm 架构的服务器上安装 PVE | 泠泫凝的异次元空间 自制 EVE-NG 镜像 | 泠泫凝的异次元空间 不使用 Snap 在 ubuntu 上安装 Chromium 浏览器 Fortigate 6.2 固件从 PPPoE 获得 IPv6 地址 Fortigate 手记 | 泠泫凝的异次元空间 Fortigate 通过命令行自定义 NTP 服务器 | 泠泫凝的异次元空间 arm 架构 CentOS 7 安装 MySQL 5.7 版本 ubuntu 20 安装计算卡驱动和 CUDA Toolkit 锐捷诺客云添加设备后一直显示“等待同步” | 泠泫凝的异次元空间 Windows 10 自动登录 | 泠泫凝的异次元空间 OpenWRT IPv6 防火墙设置 | 泠泫凝的异次元空间 k8s 部署踩坑合集 | 泠泫凝的异次元空间 改变 Ubuntu TTY 终端字体 | 泠泫凝的异次元空间 Parted 无损扩容磁盘分区 | 泠泫凝的异次元空间 NTP服务器测试 | 泠泫凝的异次元空间 【相亲相爱】2024祝大家!新年快乐!!! ESXi中重新挂载数据盘 | 泠泫凝的异次元空间 使用 MediaMTX + RTSP 搭建低延迟直播服务器 Firewalld 手记 | 泠泫凝的异次元空间 Ubuntu 上不使用 snapd 安装 Firefox 在 armbian 上安装 xfce 和 VNC 做远程桌面 在 ubuntu 20 上使用 TigerVNC 做远程桌面 在 openEuler 上部署安装 openGauss | 泠泫凝的异次元空间 Wireguard 组网笔记 | 泠泫凝的异次元空间 让特定IP(段)走VPN连接 | 泠泫凝的异次元空间 在Wireguard中排除部分IP(段) | 泠泫凝的异次元空间 CentOS 7 上升级 OpenSSL | 泠泫凝的异次元空间 将黑群晖部署到ESXi(笔记) | 泠泫凝的异次元空间 apk 代码反编译笔记 | 泠泫凝的异次元空间 Windows 搭建 iSCSI 服务器全攻略 | 泠泫凝的异次元空间 CentOS 7 编译安装 Python 3 开源语音识别工具 Whisper | 泠泫凝的异次元空间 Ubuntu 下 Python 编译安装及关联问题解决 | 泠泫凝的异次元空间 Ansible Tower 安装 | 泠泫凝的异次元空间 提高 PowerPoint 导出到图片时的分辨率 | 泠泫凝的异次元空间 利用亚马逊云服务器和VPC 构建安全可靠的虚拟网络 | 泠泫凝的异次元空间 Windows Server 多网卡链路聚合 | 泠泫凝的异次元空间 MT3000路由+移远EC20模块体验 | 泠泫凝的异次元空间 Python安装依赖时出现ctype问题 | 泠泫凝的异次元空间 GL-MT3000日用设置 | 泠泫凝的异次元空间 解除 vCenter 的最低内存限制 | 泠泫凝的异次元空间 跳过Windows 11的强制联网和账户登录 | 泠泫凝的异次元空间 Cloudflare Trace API 信息详解 | 泠泫凝的异次元空间 在CentOS中搭建由nginx反代和Apache2作为后端的Wordpress | 泠泫凝的异次元空间 通过nginx进行文件共享 | 泠泫凝的异次元空间 禁用 sudo 时密码认证 | 泠泫凝的异次元空间 在docker中一键搭建IPSec/IKEv2 VPN | 泠泫凝的异次元空间
Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间
Lxn's Area · 2026-02-03 · via 泠泫凝的异次元空间

本文提到的所有密钥对及其内容均为虚构,为随机生成,请勿直接使用。

基础环境配置

安装操作系统

操作系统采用ubuntu server 24.04 LTS,Minimal配置。操作系统正常配置和安装即可,无特殊配置项。

安装好后正常切换镜像源、添加公钥、移除snapd。

  1. 调整时区为CST:timedatectl set-timezone Asia/Shanghai
  2. 安装必要工具:apt install -y iputils-ping file
  3. 安装iptables:apt install -y iptables

调整NTP

  1. 打开/etc/systemd/timesyncd.conf,添加以下NTP时钟源:
    1
    2
    3
    [Time]
    NTP=time.windows.com time.apple.com
    FallbackNTP=ntp.aliyun.com
  2. 重启相关服务:
    1
    systemctl daemon-reload && systemctl restart systemd-timesyncd
  3. 查看同步情况:
    1
    timedatectl show-timesync

禁用IPv6

我如此执着这件事只有一个原因,这东西不安全且坑过我好几次。

  1. 编辑Grub配置文件/etc/default/grub
    1
    GRUB_CMDLINE_LINUX_DEFAULT=""
    修改为
    1
    GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
  2. 更新引导
    1
    update-grub
  3. 重启查看是否还有IPv6

启用转发

编辑/etc/sysctl.conf,末尾追加如下行

1
net.ipv4.ip_forward=1

应用:

1
sysctl -p

启用History时间记录和扩展记录条数

打开/etc/bash.bashrc,尾部加入如下内容:

1
2
3
export HISTTIMEFORMAT="[%F %T] "
export HISTSIZE=100000
export HISTFILESIZE=200000

source /etc/bash.bashrc后生效。

Zabbix Agent 配置

  1. 按照Get Zabbix说明下载、安装和启动Zabbix Agent 2。
    1
    2
    3
    wget https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu24.04_all.deb
    dpkg -i zabbix-release_latest_7.4+ubuntu24.04_all.deb && rm -f zabbix-release_latest_7.4+ubuntu24.04_all.deb
    apt update && apt install -y zabbix-agent2
  2. 创建Key存储文件夹:
    1
    mkdir -p /etc/zabbix/tls
  3. 生成PSK
    1
    openssl rand -hex 64 > /etc/zabbix/tls/agent.psk
  4. 修正权限使得只有Zabbix能够读取该PSK
    1
    chown zabbix:zabbix /etc/zabbix/tls/agent.psk
    读一下PSK备用,不要泄露
    1
    cat /etc/zabbix/tls/agent.psk
  5. 编辑Zabbix配置文件/etc/zabbix/zabbix_agent2.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # Pre-define
    PidFile=/run/zabbix/zabbix_agent2.pid
    LogFile=/var/log/zabbix/zabbix_agent2.log
    LogFileSize=0
    Server=127.0.0.1
    PluginSocket=/run/zabbix/agent.plugin.sock
    ControlSocket=/run/zabbix/agent.sock
    Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
    # Custom
    ServerActive=wgtest-01-aliyuncs.lxnchan.cn
    Hostname=wgtest-node1
    TLSConnect=psk
    TLSPSKIdentity=wgtest-node1
    TLSPSKFile=/etc/zabbix/tls/agent.psk
  6. 在Zabbix上添加主机

安装Wireguard

1
apt install -y wireguard

创建配置文件文件夹,并设置权限:

1
mkdir -p /etc/wireguard && cd /etc/wireguard && umask 077

配置Wireguard服务端

  1. 创建密钥对
    1
    wg genkey | tee server_private.key | wg pubkey > server_public.key
  2. 读取一下私钥,请勿泄露
    1
    cat /etc/wireguard/server_private.key
  3. 创建Wireguard配置文件/etc/wireguard/wg0.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # !!!DO NOT EDIT THIS FILE DIRECTLY!!!
    # Use 'bash /root/wacs.sh' to make change.
    # Build by lxnchan(https://lxnchan.cn), 2026

    [Interface]
    Address = 100.1.0.1/24
    ListenPort = 51820
    PrivateKey = <YOUR PRIVATE KEY HERE>
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
    将上面读取的私钥接口名(如果不对)替换进去。
  4. 启动配置:
    1
    systemctl enable --now wg-quick@wg0

注意到此时服务端已经启动:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
root@proxytest:/etc/wireguard# systemctl status wg-quick@wg0
● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
Loaded: loaded (/usr/lib/systemd/system/wg-quick@.service; enabled; preset: enabled)
Active: active (exited) since Wed 2026-02-04 15:53:56 CST; 3s ago
Process: 1160 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
Main PID: 1160 (code=exited, status=0/SUCCESS)
CPU: 27ms

Feb 04 15:53:56 proxytest systemd[1]: Starting wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0...
Feb 04 15:53:56 proxytest wg-quick[1160]: [#] ip link add wg0 type wireguard
Feb 04 15:53:56 proxytest wg-quick[1160]: [#] wg setconf wg0 /dev/fd/63
Feb 04 15:53:56 proxytest wg-quick[1160]: [#] ip -4 address add 100.1.0.1/24 dev wg0
Feb 04 15:53:56 proxytest wg-quick[1160]: [#] ip link set mtu 1420 up dev wg0
Feb 04 15:53:56 proxytest wg-quick[1160]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp6s18 -j MASQUERADE
Feb 04 15:53:56 proxytest systemd[1]: Finished wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0.
root@proxytest:/etc/wireguard# wg show
interface: wg0
public key: k45d7H3Aa7WtWy4+BpB5BMjWFZ0gE2B4dtmFqLs/6Ac=
private key: (hidden)
listening port: 51820

创建客户端配置文件

该操作实际上不太符合官方流程。

  1. 生成客户端的密钥对:
    1
    2
    wg genkey > client1.pri.key
    cat client1.pri.key | wg pubkey > client1.pub.key
    读取客户端的公钥备用:
    1
    2
    cat client1.pub.key

  2. 生成PSK(预共享密钥,可省略):
    1
    2
    wg genpsk

  3. 打开服务端配置文件,在末尾追加如下配置段:
    1
    2
    3
    4
    5
    6
    7
    [Peer]
    # 客户端的公钥
    PublicKey = R3n9SHxah2pSlX8dzFekBV9v0xntM2ze1L/1aRQ+QFo=
    # 给客户端分配的地址
    AllowedIPs = 100.1.0.2/32
    # PSK
    PresharedKey = lw68TjpK5VfJF/nYposXZ6U+RGRAwXBXP7P26ZwQeTc=
    然后重载配置:
    1
    systemctl reload wg-quick@wg0
  4. 手搓客户端的配置文件:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [Interface]
    # 服务端给分配的地址
    Address = 100.1.0.2/32
    DNS = 119.29.29.29
    # 客户端私钥(client1.pri.key)
    PrivateKey = oNiMerz81tdB9pOlxb/a/f29trLY0xzq23FQtpecPnk=

    [Peer]
    AllowedIPs = 0.0.0.0/0
    # 服务器地址及端口号
    Endpoint = wgtest-01-aliyuncs.lxnchan.cn:51820
    PersistentKeepalive = 25
    # PSK,需要与服务端给该Peer配置中的相同
    PreSharedKey = lw68TjpK5VfJF/nYposXZ6U+RGRAwXBXP7P26ZwQeTc=
    # 对端公钥
    PublicKey = k45d7H3Aa7WtWy4+BpB5BMjWFZ0gE2B4dtmFqLs/6Ac=
    传送到客户端即可使用。

查看客户端连接状态

使用wg show命令查看已连接客户端:

1
2
3
4
5
6
7
8
9
10
11
12
root@proxytest:~# wg show
interface: wg0
public key: k45d7H3Aa7WtWy4+BpB5BMjWFZ0gE2B4dtmFqLs/6Ac=
private key: (hidden)
listening port: 51820

peer: R3n9SHxah2pSlX8dzFekBV9v0xntM2ze1L/1aRQ+QFo=
preshared key: (hidden)
endpoint: 10.0.50.48:49861
allowed ips: 100.1.0.2/32
latest handshake: 10 seconds ago
transfer: 3.07 KiB received, 124 B sent

显示Peer具备latest handshake时间意味着在此时间前进行过有效的握手,下面是传送的数据量。

用户部分

Windows

  1. 下载安装包:
    1
    https://download.wireguard.com/windows-client/wireguard-amd64-0.5.3.msi
  2. 安装
  3. 选择“从文件导入隧道”,然后选择传送到客户端的配置文件
  4. 选择连接
  5. 接收数据量不为0则成功,可以进行其他测试

    tracert一下观察到流量流经了Wireguard服务器,证明成功

Android

  1. 在Google Play搜索安装Wireguard
  2. 点击右下角“+”,选择从文件导入,选择配置文件并导入
  3. 开启连接即可,观察到接收数据量不为零即可

iOS

  1. 在AppStore搜索安装Wireguard
  2. 点击右上角“+”,选择导入配置,选择配置文件
  3. 如果询问是否允许创建VPN,选择允许,然后输入手机密码
  4. 启用隧道即可

工具

Wireguard Automatic Configuration Script(WACS.sh)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash





if [ $# -ne 2 ]; then
echo "Usage: $0 <ClinetName> <ClientIP> (Example: peter 10.1.1.3)"
exit 1
fi



CLIENT_NAME=$1
CLIENT_IP=$2/32

CONFIG_FILE="/etc/wireguard/wg0.conf"

INTERFACE="wg0"


SERVER_PUBLIC_KEY="00W3F9L2YIcDd0H+FSHjok+ttx6zn6nyouwPDVMFX0Q="
SERVER_ENDPOINT="10.0.51.166:51821"
DNS="119.29.29.29"
ALLOWED_IPS_CLIENT="0.0.0.0/0"



CLIENT_PRIVATE_KEY=$(wg genkey)
CLIENT_PUBLIC_KEY=$(echo "$CLIENT_PRIVATE_KEY" | wg pubkey)

PSK=$(wg genpsk)

if [ ! -f "$CONFIG_FILE" ]; then
echo "Failed: $CONFIG_FILE Not Found."
exit 1
fi

echo "" >> "$CONFIG_FILE"
echo "# $CLIENT_NAME - $(date '+%Y-%m-%d %H:%M:%S')" >> "$CONFIG_FILE"
echo "[Peer]" >> "$CONFIG_FILE"
echo "PublicKey = $CLIENT_PUBLIC_KEY" >> "$CONFIG_FILE"
echo "PresharedKey = $PSK" >> "$CONFIG_FILE"
echo "AllowedIPs = $CLIENT_IP" >> "$CONFIG_FILE"


systemctl reload wg-quick@$INTERFACE
if [ $? -eq 0 ]; then
echo "Update successfully."
else
echo "Update FAILED!"
exit 1
fi

echo "Your Configuration file (client-$CLIENT_NAME.conf):"
echo ""
echo "[Interface]"
echo "PrivateKey = $CLIENT_PRIVATE_KEY"
echo "Address = $CLIENT_IP"
echo "DNS = $DNS"
echo ""
echo "[Peer]"
echo "PublicKey = $SERVER_PUBLIC_KEY"
echo "PresharedKey = $PSK"
echo "AllowedIPs = $ALLOWED_IPS_CLIENT"
echo "Endpoint = $SERVER_ENDPOINT"
echo "PersistentKeepalive = 25"

echo ""

 上一篇

Linux debian