WireGuard是一款开源、免费的快速VPN服务器,采用最先进的加密技术。它通过UDP传输流量,性能优于典型的两种隧道协议,即OpenVPN和IPsec。WireGuard是一个点对点的VPN,专门为Linux内核设计,能够在Linux内核内部运行,允许您创建快速、现代和安全的VPN隧道。
步骤1:在服务器上启用IP转发
为了让VPN服务器能够在VPN客户端和互联网之间路由数据包,您需要启用IP转发。使用您喜欢的编辑器打开/etc/sysctl.conf
文件:
bash
sudo vim /etc/sysctl.conf
找到以下行并去掉前面的#
字符:
```bash
```
保存文件并应用更改:
bash
sudo sysctl -p
步骤2:在Ubuntu上安装WireGuard
接下来,我们需要在Ubuntu机器上安装WireGuard并将其设置为服务器。默认情况下,WireGuard软件包可在Ubuntu默认的存储库中找到。
bash
sudo apt install wireguard
安装完成后,可以继续下一步。
步骤3:在Ubuntu上配置WireGuard VPN服务器
WireGuard通过在WireGuard网络中的每个设备之间交换公钥来工作。现在您已经安装了WireGuard,下一步是为服务器生成私钥和公钥对。
步骤3.1:生成公钥/私钥对
运行以下命令以创建公钥/私钥对。文件将保存在/etc/wireguard/
目录下。
bash
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
wg
命令是WireGuard的内置配置工具,用于获取和设置WireGuard的配置。运行此命令后,您将获得一行Base64编码输出,即WireGuard服务器的公钥(server_public.key)。
请记住,私钥(server_private.key)绝不能与任何人分享,始终保持安全。
步骤3.2:配置隧道设备
接下来,您需要为WireGuard创建一个网络接口。使用命令行文本编辑器(如vim)创建WireGuard配置文件,网络接口名称将为wg0。
bash
sudo vim /etc/wireguard/wg0.conf
添加以下内容:
```plaintext [Interface]
wg0接口的私有IP地址
Address = 10.0.0.1/24
VPN服务器监听端口
ListenPort = 51820
VPN服务器私钥
PrivateKey = mPIoWfKQWZP8lie2ISEZ6ul7vyESH9MqpFvxk1cxIWQ=
防火墙规则
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE ```
当然,您需要将PrivateKey
替换为您在/etc/wireguard/server_private.key
文件中生成的内容。您可以通过以下命令显示私钥的内容:
bash
sudo cat /etc/wireguard/server_private.key
确保将enp1s0
替换为您的公共网络接口的名称。您可以使用以下命令轻松找到它:
bash
ip -o -4 route show to default | awk '{print $5}'
保存并关闭wg0.conf
文件。此外,将文件权限模式更改为仅根用户可以读取这些文件。
bash
sudo chmod -R 600 /etc/wireguard/
步骤4:启用并启动WireGuard VPN服务
运行以下命令以启用在系统启动时自动启动并启动WireGuard。
bash
sudo systemctl enable wg-quick
wg0
使用以下命令检查其状态。您应该在输出中看到“active”:
bash
sudo systemctl status wg-quick
wg0.service
步骤6:将WireGuard客户端连接到服务器
在客户端机器上运行以下命令以连接VPN客户端到VPN服务器:
bash
sudo systemctl start wg-quick
wg0
结论
恭喜!希望本教程能帮助您在Ubuntu上安装和配置WireGuard VPN服务器和客户端。此设置使您能够匿名浏览网页,保持流量数据的私密性。
我强烈建议您阅读WireGuard项目文档。如果您觉得这篇文章对您有所帮助或遇到任何问题,请随时发表评论。