服务器一键部署 WireGuard
有时候,我们只是想安全地访问家里的设备,或者在外出时能放心地连上自己的服务器,不用担心公共网络上的“小眼睛”盯着。为了实现这种简单又安心的连接,我选择了 WireGuard —— 一款现代、轻量又高效的 VPN 工具。
WireGuard是一款简单、快速且现代的VPN,采用先进加密技术,性能优于IPsec和OpenVPN。它跨平台支持(Linux、Windows、macOS、BSD、iOS、Android),设计轻量,适用于从嵌入式设备到超级计算机的多种场景,目前正积极开发,被视为最安全易用的VPN解决方案之一。
接下来,我将分享如何在自己的服务器上一键部署 WireGuard,让搭建过程变得简单快捷,几步搞定,轻松拥有属于自己的加密通信隧道。
这里为了图方便我直接用的阿里的Alinux系统
步骤一:首先把系统源更新一下
sudo yum update -y
sudo yum install -y curl sudo
步骤二:下载安装脚本
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
这里会看到我的报错了(没有报错直接下一步)

因为我用的是Alinux,而 angristan 的脚本 只认这些系统 ID:debian, ubuntu, fedora, centos, almalinux, rocky, oracle, arch, raspbian, alpine但它不认识 alinux所以会报错退出。
对下载的 wireguard-install.sh 脚本稍作修改,添加对 alinux 的支持。
用 vi 、nano或者vim 编辑一下脚本:
vi wireguard-install.sh
在脚本找这个:

修改 OS="${ID}" 这一行,改成
OS="${ID}" && [[ "${OS}" == "alinux" ]] && OS=centos
然后保存退出,接着运行第三步。
步骤三:给脚本添加可执行权限
chmod +x wireguard-install.sh
步骤四:运行安装脚本
sudo ./wireguard-install.sh
运行完就会出来提示跟着他的提示走就行
IPv4 or IPv6 public address: 这里就写ip
Public interface: eth0 这里填网卡名一般都是eth0,不知道是啥的先退出(ctrl+c退出脚本程序)ip a看一下
WireGuard interface name (default: wg0): 回车就行
Server's private IPv4 address (/24): 10.66.66.1 回车就行
Server's private IPv6 address (optional): 回车就行
Allowed IPs for the client (e.g., 0.0.0.0/0, ::/0):填0.0.0.0/0让客户端“走代理上网(如果你想只访问服务器内网才走隧道,就填 10.66.66.0/24)
Client name: 给刚下的客户端起名字
几秒后会看到类似输出:
Your client config file is in /root/wg0-client-名字.conf
If you want to add more clients, you simply need to run this script another time!
WireGuard is running.
You can check the status of WireGuard with: systemctl status wg-quick@wg0
到这就完事了,安装完的配置文件一般目录是/root/wg0-client-名字.conf
看他就用cat /root/wg0-client-名字.conf,比如我刚刚起的名字是shy就是
cat /root/wg0-client-shy.conf
这就是配置文件,把这些复制下来保存到txt改一下conf后缀就能直接在电脑的WireGuard 导入配置连接了。

用手机连接的话二维码更方便,要先下载一个 qrencode
sudo yum install -y qrencode
运行下面命令就会生成一个二维码,手机扫码连接就好
qrencode -t ansiutf8 < /root/wg0-client-名字.conf
下面就是一些可能遇到的问题了
看状态命令:
sudo wg
interface: wg0
public key: xxxxxxxxxx
private key: hidden
listening port: 51820
peer: yyyyyyyyyyy
preshared key: (hidden)
endpoint: 123.123.123.123:51234
allowed ips: 10.66.66.2/32
latest handshake: 1 minute ago
transfer: 1.2 MB received, 1.5 MB sent
类似这种的,latest handshake 表示最近一次握手时间,说明客户端已连接。
添加一个新用户命令:
sudo ./wireguard-install.sh
如果wireguard有接收到流量,网速太慢的话就是端口被限速了,换个端口
停止当前服务
sudo systemctl stop wg-quick@wg0
编辑配置文件
sudo nano /etc/wireguard/wg0.conf
找到下面这个
ListenPort =
改成443端口
ListenPort = 443 注意记得去云安全组放行新端口(443/UDP)
然后保存退出,重启服务:
sudo systemctl restart wg-quick@wg0
然后重新生成客户端配置:
sudo ./wireguard-install.sh
然后调整 MTU,WireGuard 默认 MTU 是 1420,但在某些网络环境下会导致分包、重传,降低速度
阿里云 + 国内用户 1360 或 1300
高延迟国际线路 1280
本地高速网络 1420
编辑 /root/wg0-client-shy.conf:
[Interface]
PrivateKey = xxxxxx
Address = 10.66.66.2/32
DNS = 1.1.1.1
MTU = 1360 👈 添加这一行
重新生成二维码(让手机扫码更新)
qrencode -t ansiutf8 < /root/wg0-client-新用户的名字.conf
如果改成443没流量能接收可能是防火墙或端口冲突
检查是否有服务占用了 443 端口:sudo ss -tulnp | grep ':443' 或者 sudo netstat -tulnp | grep ':443'
如果显示 nginx、caddy、httpd 等,说明 Web 服务占用了 443,那就是冲突
如果没有往下看
检查 WireGuard 是否在监听 443 打这个 sudo wg
看输出中是否有:listening port: 443 如果没有,说明配置没生效 。检查配置文件:
sudo nano /etc/wireguard/wg0.conf
确认有:
[Interface]
PrivateKey = xxxxxx
Address = 10.66.66.1/24
ListenPort = 443 # 必须是 443不是就改了
保存后重启服务:
sudo systemctl restart wg-quick@wg0
客户端必须使用新端口,你改了服务端端口,但客户端配置没更新,手机还在连原来的端口。
运行
sudo ./wireguard-install.sh
选1) Add a new user 起一个名字
它会自动生成一个使用 443 端口的配置文件:
/root/wg0-client-新用户名字.conf
运行命令生成二维码:
qrencode -t ansiutf8 < /root/wg0-client-新用户名字.conf
手机连接成功后,在服务器上运行:
sudo wg
你会看到类似输出:
interface: wg0
public key: ABCDEFG...=
private key: (hidden)
listening port: 443
peer: HIJKLMN...=
preshared key: (hidden)
endpoint: 123.123.123.123:51234
allowed ips: 10.66.66.2/32
latest handshake: 1 minute ago
transfer: 1.2 MB received, 800 KB sent ← 看这里有数据了
如果看到 transfer 有数据,说明:连接成功 流量正在通过
虽然现在能连上了,但可能还是慢。我们加上 MTU 优化。
编辑新配置文件:
sudo nano /root/wg0-client-名字.conf
在 [Interface] 下添加:MTU = 1360
就是下面这样:
[Interface]
PrivateKey = xxxxxx
Address = 10.66.66.2/32
DNS = 1.1.1.1,1.0.0.1
MTU = 1360 # 添加这一行
[Peer]
PublicKey = yyyyyy
PresharedKey = zzzzzz
Endpoint = 47.236.56.62:443
AllowedIPs = 0.0.0.0/0,::/0
保存后,重新生成二维码:
qrencode -t ansiutf8 < /root/wg0-client-名字.conf
如果还是没网就检查一下刚刚生成的客户端配置文件 /root/wg0-client-shy3.conf 里的 Endpoint
如果端口还是52539自己改一下
问题根源就是wireguard-install.sh 脚本在生成客户端配置时,会读取服务端配置中的 ListenPort。
你可能先运行了脚本添加用户后修改了 /etc/wireguard/wg0.conf 的 ListenPort = 443导致脚本“记住”的还是 原端口所以它生成的客户端配置仍然是原端口。
手动改一下这个文件:
sudo nano /root/wg0-client-名字.conf
找到这一行:Endpoint = xxxxxx:52539 改成443
在 [Interface] 部分,取消注释并设置 MTU:MTU = 1360
类似下面这个
[Interface]
PrivateKey =
Address = 10.66.66.4/32,fd42:42:42::4/128
DNS = 1.1.1.1,1.0.0.1
MTU = 1360 # 添加这一行
重新生成二维码:
qrencode -t ansiutf8 < /root/wg0-client-名字.conf
下次如果你想换端口,建议:
先停服务
sudo systemctl stop wg-quick@wg0
修改 /etc/wireguard/wg0.conf 的 ListenPort = 443
保存后,再运行安装脚本添加用户:
sudo ./wireguard-install.sh
有防火墙问题吗?
安全方案:不重启、不停服务,只添加防火墙规则 :sudo firewall-cmd --add-port=443/udp --permanent
然后刷新防火墙规则:sudo firewall-cmd --reload
验证防火墙是否放行:sudo firewall-cmd --list-ports | grep 443 如果看到输出:443/udp 说明防火墙已放行 UDP 443
本文地址:https://www.yitenyun.com/492.html










