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

推荐订阅源

Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
N
News and Events Feed by Topic
SecWiki News
SecWiki News
T
The Exploit Database - CXSecurity.com
S
Security @ Cisco Blogs
H
Heimdal Security Blog
Security Latest
Security Latest
T
Threatpost
V2EX - 技术
V2EX - 技术
C
Cybersecurity and Infrastructure Security Agency CISA
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
Recent Announcements
Recent Announcements
P
Privacy International News Feed
K
Kaspersky official blog
P
Proofpoint News Feed
L
LangChain Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
博客园_首页
T
Tor Project blog
M
MIT News - Artificial intelligence
The Hacker News
The Hacker News
The GitHub Blog
The GitHub Blog
月光博客
月光博客
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
F
Full Disclosure
MyScale Blog
MyScale Blog
The Register - Security
The Register - Security
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
L
LINUX DO - 最新话题
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
O
OpenAI News
T
The Blog of Author Tim Ferriss
S
Schneier on Security
小众软件
小众软件
The Cloudflare Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Know Your Adversary
Know Your Adversary
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
Lohrmann on Cybersecurity
Vercel News
Vercel News

方永、南天紫雲

linux透明代理 技术的边界 停机问题通俗说明 Rust与oracle、redis集群的纠结 学习能力的增长 微信调试的原语 mac外接移动硬盘安装ArchLinux linux的死机问题 linux下全键盘操作 漂亮又好用的bspwm linux本机透明代理 ssh、mosh、autossh linux不能待机又一例 从WordPress切换到Hugo 折腾电脑开机 linux系统QQ新思路 Arch Linux的字体渲染 svn管理之submin OpenWrt自动fucking墙記錄 二维码(qrcode)名片的一些事儿 用lua nginx module搭建一个二维码(qr code)生成器 CentOS 7 安裝註記 php程序連接MySQL时只能127.0.0.1而localhost無法連接的問題 ThinkPad之FAN_ERROR、hi fi聲卡 jetty多端口部署 OpenWrt簡單暴力限網 linux中cron之PATH变量 OpenWrt的WDS無線橋接模式 再敘OpenWrt下的rtl8187無線中繼 sed之模擬tail 終端進化之二零一三 linux下的郵件服務器:postfix_dovecot_roundcube 一次性密碼/動態口令卡原理 xl2tp之VPN靜態地址分配 rtl2838U2832试用记 linux中pptp协议VPN搭建 glances监控工具安装 CentOS6.4硬盘安装 Debian Wheezy硬盤/U盤安裝小記 Kirby小試 zsh shell怎么打开常用的目录? OpenWrt SSH免密码使用密钥登录 linux中的vsftpd的匿名(anonymous)用户配置 無光驅無USB無軟驅,怎麼修復硬盤MBR? 那些個人網站 linuxFreeBSD下的dnspod动态域名客户端 Windows系统盘的32K之殇 一枚Chrome插件引起的大量磁盤IO問題 用批處理切換網卡的IP(適用Win7、Win8) Windows中的DHCP服务器 Win8啓動時出現“您的電腦需要修復”問題的解決辦法 Windows8睡眠(待机)模式异常处理 最强大好用而又小巧的计算器 Windows8運行不能保存歷史命令 Win8下的红警2尤里复仇 为cmd添加readline,如Bash Shell般使用cmd 手动添加修改win8 win+x菜单 Win8運行卸載程序時提示2503之解決一法 烽火HG110提权一法 缓解眼疲劳有效的办法 mintty乱码解决办法 糟糠美妾 免费易用的Win8 ArchLinux的類box環境音量調節二三事 使用OpenWrt与curl挂QQ OpenWrt的安全 OpenWrt BCM63xx rtl8187使用注意事项 Arch Linux之systmed使用简介 Archlinux 2012.07.15之后发布的镜像新手安装完全向导 FreeBSD 9.0 安装简记 记一由FreeBSD引发的午夜惊魂 Jekyll or handmade wi-fi无线破解过程与原理简要介绍 修复QQ影音异常卸载后的文件关联 吐槽一下000webhost 为OpenWrt的luci Web界面加速 最小的sed for Windows linux的磁盘自动挂载 OpenWrt中crontab -e的使用 sddns(dnspod client for OpenWrt)使用说明 OpenWrt中vsftp添加新用户 php+markdown写博客 linux arp防火墙之p2p终结者 墙外的世界很精彩 OpenWrt使用dnspod的动态域名解析(ddns)功能 OpenWrt架设nginx php网站 openwrt架设uhttpd+php+sqlite网站 vim自动跳到上次离开的光标位置 OpenWrt无线中继配置文件 修行八支 漫步者R201T打摩升级改造 阿里(Ali)3328系dvb接收机软件升级方法 db120刷OpenWrt固件并使用ppp方式ADSL拨号 移动短信助手 chrome tips一则 cdate,显示中国传统农历日期 更改硬盘模式为AHCI后Windows及linux的调整 使用grub2加载软盘和光盘镜像 电脑用数据线连接手机上网 电脑通过蓝牙连接手机GPRS上网
WireGuard直连外网的一些记录
zola · 2025-12-19 · via 方永、南天紫雲

最近配置了WireGuard直连外网,这是过程记录。

WireGuard 直接直连肯定是不行的,会被阻断。可以用一些工具对WireGuard 的数据流进行整形和加工,用到的工具是 wg-mangler

wg-mangler 这个工具可以对 WireGuard Noise 协议的 message 进行混淆和padding,能逃过某些检测。用了之后效果非常好,延迟、丢包、吞吐相比于 phantun ,均有大幅的提升,网页秒开,youtube 4k 视频的Buffer Health 稳定在7秒以上。

用了几天,发现有时会有连接不上的情况。经过观察,发现是运营商对走国外的UDP数据包在某些时段进行了drop,持续5分钟以上后自动恢复,不局限于哪个端口,可能是QoS之类。在阻断的过程中,在一台阿里云服务器上的连接是正常的(这台阿里云上的WireGuard同样用 wg-mangler 连接到远端)。

UDP被阻断的问题,有多种解法,很常见的思路就是用TCP 做 tunnel,但就像上面提到的,阿里云走国外的UDP是正常的,何不在阻断时将外网机器IP的路由切到这台阿里云呢?恢复正常后再切回来(因为这台阿里云机器的带宽很小),岂不是鱼和熊掌兼得之?

经过尝试,果然是可以的,下面是配置过程:

假设本地有一台机器A,上面跑了WireGuard,配置了两个 Peer,一个通过 wg-mangler 连到国外机器B(假设公网IP是1.2.3.4), 另一个 Peer 连接到了阿里云机器C 。

在A上配置路由

首先是修改WireGuard的配置,允许1.2.3.4 经由阿里云的那个Peer。其实就是在此Peer的allowed ips 配置上加上 1.2.3.4/32allowed ips 的意思是,WireGuard 是一个 layer 3 的VPN,每个Peer 都可以指定一个允许通过的IP 的 CIDR 列表, 相当于给IP指定哪个Peer作为下一跳。然后在主路由表上添加一条 ip route add 1.2.3.4 dev wg0wg0 是WireGuard的interface

在C上配置回程路由

C上面首先要保证配置了允许转发,也就是 net.ipv4.ip_forward=1,也要配置出口interface 的 masquerade,然后配置回程路由 ip route add 10.1.1.0/24 dev wg0,这里的10.1.1.0/24 是 WireGuard 用到的网段

测试

在A上进行测试。

ping 1.2.3.4 ,测试连通性。

执行 traceroute 1.2.3.4 ,观察路由情况。

然后删除路由 ip route del 1.2.3.4 dev wg0 ,再用 traceroute 观察路由,是否发生变化。

另一种方案

不过呢,上述的方案从A -> C -> B的链路中,A到C属于 WireGuard over WireGuard,这种套娃显然会带来不必要的开销。解法也很简单,只需在C上跑一个 wg-mangler ,这个 wg-mangler 去连B,然后A的endpoint 配置为C上面wg-mangler 的监听地址。或者在C的 nftables 上配置一个端口转发,像这样 iif eth0 udp dport 1234 dnat ip to 1.2.3.4:7788,然后A上的wg-mangler 的转发地址配置为C的地址和这个端口转发地址。这两种方式都可以正常工作,但是如果遇到了UDP阻断,需要来回地切换时,在C上跑一个wg-mangler这种方式更高效一点,因为只需热更新WireGuard peer的 endpoint 即可,WireGuard会即时生效。切换endpoint的命令: wg set wg0 peer <public key> endpoint <ip>:<port>