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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
T
Tenable Blog
P
Proofpoint News Feed
C
Check Point Blog
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
P
Privacy & Cybersecurity Law Blog
美团技术团队
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
量子位
AI
AI
Spread Privacy
Spread Privacy
Help Net Security
Help Net Security
Know Your Adversary
Know Your Adversary
IT之家
IT之家
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
LangChain Blog
I
Intezer
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
月光博客
月光博客
Recorded Future
Recorded Future
O
OpenAI News
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Y
Y Combinator Blog
Engineering at Meta
Engineering at Meta
S
Security @ Cisco Blogs
Recent Announcements
Recent Announcements
P
Privacy International News Feed
NISL@THU
NISL@THU
MongoDB | Blog
MongoDB | Blog
W
WeLiveSecurity
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
博客园 - Franky
Cyberwarzone
Cyberwarzone
H
Hacker News: Front Page

泠泫凝的异次元空间

通过串口安装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