网络环境
| 服务器 | ||
|---|---|---|
| 网卡 | 对内 | 对外 |
| eth0 | 10.0.20.9 | glan.site |
| wg0 | 10.10.1.1 |
安装
pacman -S wireguard-tools
开启内核转发
vim vim /etc/sysctl.d/80-bbr.confnet.ipv4.ip_forward = 1net.ipv4.conf.all.proxy_arp = 1sysctl -p /etc/sysctl.d/*.conf
生成密钥
在服务器执行以下命令
wg genkey | tee privatekey | wg pubkey > publickey
其中privatekey就是服务器私钥,而publickey就是服务器公钥
服务端配置文件
服务器编写配置文件 vim /etc/wireguard/wg0.conf
[Interface]ListenPort = 51820Address = 10.10.1.1/32PrivateKey = [服务器私钥]PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE# 代理所有所有流量PostUp = iptables -A FORWARD -i wg1 -j ACCEPT; iptables -A FORWARD -o wg1 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i wg1 -j ACCEPT; iptables -D FORWARD -o wg1 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE# 代理指定ip段流量#PostUp = iptables -I FORWARD -s 10.10.1.1/24 -i wg0 -d 10.10.1.1/24 -j ACCEPT#PostUp = iptables -I FORWARD -s 10.10.1.1/24 -i wg0 -d 10.0.20.9/32 -j ACCEPT#PostUp = iptables -I FORWARD -s 10.0.20.9/32 -i wg0 -d 10.10.1.1/24 -j ACCEPT#PostDown = iptables -D FORWARD -s 10.10.1.1/24 -i wg0 -d 10.10.1.1/24 -j ACCEPT#PostDown = iptables -D FORWARD -s 10.10.1.1/24 -i wg0 -d 10.0.20.9/32 -j ACCEPT#PostDown = iptables -D FORWARD -s 10.0.20.9/32 -i wg0 -d 10.10.1.1/24 -j ACCEPT# SNATPostUp = iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -j SNAT --to-source 10.0.20.90PostDown = iptables -t nat -D POSTROUTING -s 10.10.1.0/24 -j SNAT --to-source 10.0.20.90# PostDown = iptables -t nat -F[Peer]PublicKey = [客户端公钥]AllowedIPs = 10.10.1.2/32
客户端配置(不做内网中转)
在客户端添加空隧道时,会自动生成客户端的公钥私钥,如下
将以下内容填写好,替换掉客户端原先的配置文件即可
[Interface]PrivateKey = [客户端私钥]Address = 10.10.1.2/32DNS = 223.5.5.5MTU = 1420[Peer]PublicKey = [服务端私钥]AllowedIPs = 10.10.1.0/24,10.0.20.9/32Endpoint = glan.site:51820PersistentKeepalive = 25
服务端管理命令
# 启动wireguardwg-quick up wg0# 终止wireguardwg-quick down wg0# 查看wireguard状态wg
检查
traceroute
参考资料
https://www.bilibili.com/video/av852363238/
http://aq.mk/index.php/archives/132.html
https://devld.me/2020/07/27/wireguard-setup/
待尝试
home assistant➕ wireguard插件
