隧道第二弹之wireguard

参考 https://www.wireguard.com/install/
参考 https://kotori.net/2018/10/21/centos-安装最新版的wireguard/

一、安装linux-headers(请自己帮自己)
倘若失败,请更新到最新内核
什么?想和魔改bbr/锐速共存?这边建议您自行谷歌呢

二、安装wireguard
https://www.wireguard.com/install/ 找对应系统的安装命令

三、检查是否安装成功

modprobe wireguard
# 如果安装失败,则有以下输出
modprobe: FATAL: Module wireguard not found in directo...
# 此时请重新回到第一步

四、开启ipv4转发

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

五、生成公钥私钥

mkdir /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey

六、配置wg

# 服务端
cat > /etc/wireguard/wg0.conf << EOF
[Interface]
PrivateKey = PRIVATEKEY
Address = 192.168.2.1/24
ListenPort = PORT
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o INTERFACE -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o INTERFACE -j MASQUERADE
SaveConfig = true
EOF
# 然后修改 PORT 和 INTERFACE,有需要把 Address 也改掉
# 服务端 设置客户端peer
# ALLOWED_IP_CIDR 若是0.0.0.0/0,即为全局转发,千万别通过ssh开这个
# 这边建议您将其设置为远端wg的ip呢,例如 192.168.2.222/32
wg set wg0 peer ${CLIENT_PUBLICKEY} allowed-ips ${ALLOWED_IP_CIDR} endpoint ${REMOTE_ADDR} persistent-keepalive 25

客户端的配置与服务端一样的呢,如果想要当成全局vpn用,客户端就把ALLOWED_IP_CIDR改为0.0.0.0/0即可
如果客户端是linux呢?只能请楼下的大神回答一下了,我不会

七、管理

# 开机自启
systemctl enable wg-quick@wg0
# 开关
wg-quick up|down wg0
# 查看状态
wg

最后,开了wg的机器想设置内网的端口转发时,本地ip应该选择wg上的ip哟

补充楼主
如果需要在linux下做客户端 可以把所谓服务端的配置复制下来 之后修改公钥私钥为所谓客户端的 并将allowIP改为0.0.0.0之后 同服务端启动方法即可
但这有一个缺点 你将无法直接使用客户端IP登录ssh 应该怎么解决 请楼下大佬解答

如果你觉得这篇文章不错 请用使用 <kbd>Alt</kbd>+<kbd>F4</kbd> 为楼主点赞!

大佬,这个断流不

名字就是TG 联系我请直奔主题

@ChinaT wg没有故意断流这个功能