wireguard 自建组网方法

之前内网穿透一般用的是frp,组网我一般使用tailscale + 自建derp。

试了一下wireguard 组网,好像也挺好用的,有安卓,iOS,Windows,Linux,mac客户端。配置也不算麻烦。

比如想将本地电脑和一台远程手机组网。

1、服务器安装 wireguard

apt update

apt install wireguard iptables

2、服务器配置,本地电脑公钥和手机公钥等2,3步设置好了再修改。

cd /etc/wireguard
umask 077
# 生成服务器的公钥server_public.key 和私钥server_private.key
wg genkey | tee server_private.key | wg pubkey > server_public.key
#编辑配置文件
vim /etc/wireguard/wg0.conf

#添加以下内容
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <服务器私钥内容>

# 开启IP转发
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# 本地电脑配置
[Peer]
PublicKey = <本地电脑的公钥>
AllowedIPs = 10.0.0.2/32

# 手机配置
[Peer]
PublicKey = <手机的公钥>
AllowedIPs = 10.0.0.3/32

服务器分配的局域网ip是:10.0.0.1

本地电脑分配的ip是:10.0.0.2

远程手机分配的ip是:10.0.0.3

3、本地电脑配置:

下载安装Windows版本:https://www.wireguard.com/install/

#生成本地电脑的公钥server_public.key 和私钥server_private.key
wg genkey | tee pc_private.key | wg pubkey > pc_public.key

#创建一个配置文件 pc.conf
[Interface]
PrivateKey = <本地电脑私钥>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <服务器公钥>
Endpoint = <服务器公网IP>:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25

Windows:打开 WireGuard → 添加隧道 → 导入配置文件

4、远程手机配置

可以使用电脑或者服务器生成一份密钥和私钥文件先。

#生成远程手机的的公钥server_public.key 和私钥server_private.key
wg genkey | tee pc_private.key | wg pubkey > pc_public.key

#创建一个配置文件 sj.conf
[Interface]
PrivateKey = <手机私钥>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <服务器公钥>
Endpoint = <服务器公网IP>:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25

手机客户端,WireGuard,点击 “+” → 导入sj.conf

5、启动服务。

服务器配置文件修改一下手机和电脑的公钥。

# 本地电脑配置
[Peer]
PublicKey = <本地电脑的公钥>
AllowedIPs = 10.0.0.2/32

# 手机配置
[Peer]
PublicKey = <手机的公钥>
AllowedIPs = 10.0.0.3/32

服务器启动。

#启动,启动服务器会都偶哦个 wg0的网络接口。
wg-quick up wg0
#关闭
wg-quick down wg0

#或者
systemctl restart wg-quick@wg0
systemctl enable wg-quick@wg0

电脑客户端激活,手机客户端启动就好了。

6、测试联通性:

# 查看所有连接的设备
sudo wg show

# 只查看 wg0 接口
sudo wg show wg0

# 电脑 ping 服务器
ping 10.0.0.1

# 电脑 ping 手机
ping 10.0.0.3

# 手机终端或网络工具 ping 电脑
ping 10.0.0.2

留言

* - 必填