Ubuntu 24.04用户现在装VPN,不再需要翻文档找PPA源了。内核自带、两条命令搞定——这配置效率比喝杯咖啡还快。
一图看懂:你的流量怎么"隐身"
![]()
想象一条专属高速公路:你的笔记本(10.0.0.2)→ 加密隧道 → 云端服务器(10.0.0.1)→ 公网。ISP只能看到"有辆车在开",不知道车里装的什么、去哪。这就是WireGuard设计的"road warrior"场景——一个服务器托住多个流浪终端,每人领一个10.0.0.x的内网IP,走Curve25519非对称加密。没有证书链、没有协商握手的老黄历,密钥对生成后直接硬编码进配置。原文给的拓扑极简:服务器配wg0接口监听,客户端点对点直连。没有CA中心、没有吊销列表,信任关系就靠双方公钥互相登记。
安装:apt仓库已内置,告别PPA折腾
Ubuntu 24.04的内核把WireGuard编进去了,不用像老版本那样先装DKMS模块。两条命令搞定更新与安装,装完验证版本号看到v1.0.x即正常。如果提示未找到命令,手动加载内核模块再试——但24.04基本遇不到这情况。wg-quick工具跟着一起装好,这是懒人福音:一条命令拉起/关闭接口,自动处理路由表和防火墙标记。
密钥:非对称加密的"极简主义"
WireGuard没有X.509证书那套仪式。每端只需要私钥+公钥,Curve25519椭圆曲线,32字节私钥、32字节公钥,完事。服务器端用管道三连生成密钥对:生成私钥→存文件→算公钥→存文件,顺手改权限锁死私钥,root只读。客户端密钥同理。原文建议"在客户端机器上生成更安全",但教程为了省事直接在服务器端批量造。生产环境别这么干——私钥在传输过程中多过一次手,就多一次泄露面。
配置:INI格式,没有XML的繁文缛节
WireGuard配置文件长这样,眼熟得像个极简版gitconfig。Interface段定义本端:私钥、VPN内网IP、监听端口。PostUp/PostDown是接口启停时自动执行的iptables脚本——开启时放行转发+做SNAT伪装,关闭时清理规则。Peer段定义对端:公钥、允许进入的IP段。AllowedIPs既是路由表也是ACL,同时系统路由表会添加对应条目。客户端配置镜像对称:Interface放自己的私钥和内网IP,Peer段填服务器公钥和Endpoint(公网IP+端口)。AllowedIPs写0.0.0.0/0就是全局代理,写10.0.0.0/24就是仅访问内网。
内核转发与防火墙:容易踩的两脚泥
配完文件别急着启动,先开内核IP转发。编辑sysctl.conf把net.ipv4.ip_forward设为1,立即生效用sysctl -p。防火墙放行UDP端口,同时确认iptables的FORWARD链默认策略不是DROP——很多云镜像默认拒绝转发,会导致隧道通了但流量过不去。
启动与验证:wg命令看状态
wg-quick up wg0拉起接口,wg-quick down wg0关闭。wg show实时看对等端状态:latest handshake显示最后一次握手时间,transfer显示收发流量。客户端连上后,curl ifconfig.me应该返回服务器公网IP,而非本地ISP的IP。如果握手成功但上不了网,检查服务器的PostUp脚本有没有做对MASQUERADE——这是最容易漏的一步。
生产环境 checklist
私钥别进git仓库,用ansible-vault或sops加密。端口别用默认51820,扫描器天天扫这个。客户端AllowedIPs别无脑写0.0.0.0/0,按需拆分路由减少延迟。服务端PersistentKeepalive = 25应对NAT超时,移动端尤其需要。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.