在Ubuntu上安装WireGuard
-
更新包列表并安装必要软件包:
打开终端,运行以下命令以更新包列表并安装必要的软件包:
sudo apt update sudo apt install wireguard linux-headers-$(dpkg --print-architecture)
-
生成WireGuard密钥:
使用以下命令生成一个密钥文件,并将其放在
/etc/wireguard目录下:umask 600 dd if=/dev/urandom of=/etc/wireguard/private-key | chown root:root /etc/wireguard/private-key
或者,使用
wg工具生成密钥文件:wg gen-key
生成后,密钥文件会被创建在
~/.wg/目录下,建议将其移动到/etc/wireguard并设置正确权限:mv ~/.wg/private-key ~/.wg/public-key ~/.etc/wireguard/ chown root:root ~/.etc/wireguard/private-key chown root:root ~/.etc/wireguard/public-key
-
配置环境:
打开
.bashrc文件,添加以下行以便使用wg命令:echo "wg() { command -v wg; }; export PATH=/usr/lib/wg/bin:$PATH" >> ~/.bashrc重新加载终端或重启 shell:
. ~/.bashrc
-
连接到服务器:
-
手动连接:
使用以下命令连接到服务器:
wg-quick-join <服务器公钥文件> --server <服务器IP>
wg-quick-join /etc/wireguard/server-public-key.pem --server 192.168.1.2
-
自动连接:
创建一个
wireguard.service文件:sudo nano /etc/systemd/system/wireguard.service
[Unit] Description=WireGuard tunnel After=network.target [Service] ExecStart=/usr/lib/wg/wg ExecStop=/usr/lib/wg/wg --stop [Install] WantedBy=multi-user.target
启用并启用服务:
sudo systemctl daemon-reload sudo systemctl enable wireguard.service sudo systemctl start wireguard.service
-
-
测试连接:
-
检查本地接口状态:
wg show
-
检查远程服务器状态:
ssh <服务器IP> wg show
-
-
服务器端配置(可选):
如果需要客户端访问内部网络,服务器端需要配置NAT:
sudo iptables -t nat -A POSTROUTING -o eth -j MASQUERADE sudo iptables -A FORWARD -i eth -o wg -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wg -o eth -j ACCEPT
保存这些规则:
sudo sh -c "iptables-save > /etc/iptables.wireguard"
然后在启动时加载这些规则:
@reboot iptables-restore < /etc/iptables.wireguard
在macOS上安装WireGuard
-
安装Homebrew:
如果尚未安装,先安装Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
安装WireGuard:
使用Homebrew安装:
brew install wireguard
-
生成密钥:
类似于Linux,生成密钥文件:
umask 600 dd if=/dev/urandom of=~/.wg/private-key | chown root:root ~/.wg/private-key
-
配置环境:
将
wg命令添加到PATH中,重启终端:echo "wg() { command -v wg; }; export PATH=$PATH:/usr/local/sbin/wireguard/bin" >> ~/.bashrc . ~/.bashrc -
连接到服务器:
使用
wg-quick-join命令:wg-quick-join ~/.wg/public-key --server <服务器IP>
在Windows上安装WireGuard
由于Windows缺少内置支持,需要使用第三方工具如ZeroTier或OpenVPN来绕过NAT,以下使用ZeroTier作为示例:
-
下载并安装ZeroTier:
从ZeroTier官网下载并安装。
-
配置ZeroTier:
在ZeroTier控制面板中创建一个端口规则,允许流量通过。
-
安装WireGuard:
使用 winget安装:
winget install WireGuard
-
生成密钥:
使用
wg工具生成密钥文件:wg gen-key
-
配置网络:
在ZeroTier控制面板中,将服务器和客户端分配到同一网络,确保路由正确。
-
连接到服务器:
使用
wg-quick-join命令连接,指定服务器的IP和公钥文件。
注意事项
- 权限设置: 确保密钥文件权限正确,避免未授权访问。
- 防火墙设置: 确保防火墙允许WireGuard的数据包通过。
- 服务器端配置: 如果需要内部网络访问,确保服务器端有适当的NAT配置。
- Kernel支持: 确保Kernel版本支持WireGuard的最新功能。
通过以上步骤,您可以在不同操作系统上安装并配置WireGuard,创建安全的点对点连接。









