# Wireguard 虚拟组网

> 为了可以随时随地阅览到笔记，以及更方便快捷的编辑一堆笔记，我真的煞费苦心了。
>
> 最初想法是通过 Samba 服务，把服务器的笔记目录挂载到电脑和 IOS 的文件管理器里面，实现类似本地编辑的效果。
>
> 但经过尝试发现 Samba 服务默认端口是运营商给封了，无法使用，无奈只能使用虚拟组网技术，实现一个虚拟的局域网，用来挂载目录。

## 安装 Wireguard

```bash
yum install -y yum-utils epel-release
yum-config-manager --setopt=centosplus.includepkgs=kernel-plus --enablerepo=centosplus --save
sed -e 's/^DEFAULTKERNEL=kernel$/DEFAULTKERNEL=kernel-plus/' -i /etc/sysconfig/kernel
yum install -y kernel-plus wireguard-tools
```

顺便开启 IPv4 流量转发

```bash
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
```

## 生成密钥对

```bash
wg genkey | tee server_privatekey | wg pubkey > server_publickey
wg genkey | tee client_privatekey | wg pubkey > client_publickey
```

## 配置文件

### 服务端

```bash
[Interface]
PrivateKey = #服务端私钥server_privatekey
Address = 10.0.1.1/24
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o 网卡设备名 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o 网卡设备名 -j MASQUERADE
ListenPort = 3001
DNS = 8.8.8.8
MTU = 1420



[Peer]
PublicKey = #客户端公钥client_publickey
AllowedIPs = 10.0.1.2/32
```

### 客户端

```bash
[Interface]
PrivateKey = #客户端私钥client_privatekey
Address = 10.0.1.2/24
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = #服务端公钥server_publickey
AllowedIPs = 0.0.0.0/0,::0
Endpoint = #[服务端IP:port]或[域名]
PersistentKeepalive = 25
```

## 启动服务端

- 状态 `wg`
- 启动 `wg-quick up wg0`
- 关闭 `wg-quick down wg0`
- 开机自启 `systemctl enable wg-quick@wg0`

------

[CSDN · 组网神器WireGuard安装与配置教程（超详细）](https://blog.csdn.net/qq_20042935/article/details/127089626)