WireGuard:兄弟,常回家看看
2024-10-10 05:47:0 Author: mp.weixin.qq.com(查看原文) 阅读量:0 收藏

0x01 前言

最近有个需求,出门在外的时候想会连家里局域网的一些服务,之前一直使用的是cloudflare的隧道功能,但是还是不够方便(但是cf隧道的安全性还是很强的,有零信任机制)。

调研了一下,最后决定使用WireGuard。中间遇到的问题主要是流量到不了家里。转发规则设置的问题。参考的最好的一篇文章-https://gobomb.github.io/post/wireguard-notes/(其他的都是鬼扯蛋)

0x02 准备工作

配置信息

  • 个人笔记本(Mac)-192.168.2.2(wg)

  • VPS-192.168.2.1(wg)

  • 家里任意一台局域网主机(Home Linux)-192.168.1.1/24 192.168.2.3(wg)

0x03 安装&配置WG

VPS

  1. wg genkey > private

  2. ip link add dev wg0 type wireguard # 添加 wireguard 网卡 wg0

  3. ip addr add 192.168.2.1/24 dev wg0

  4. wg set wg0 private-key ./private # 设置私钥

  5. ip link set wg0 up #启动网卡

  6. wg # 查看公钥

Home Linux

先配置wg

  1. wg genkey > private

  2. ip link add wg0 type wireguard

  3. ip addr add 192.168.2.2/24 dev wg0

  4. wg set wg0 private-key ./private

  5. ip link set wg0 up

  6. 连接VPS

  7. wg set wg0 peer OM5NlntS3l0hCBrrlvFGnVoThIniVICuulbszIQ0Lhs= allowed-ips 192.168.2.0/24 endpoint ip:port persistent-keepalive 15

  8. 查看home linux公钥

  9. wg

服务端添加home linux

  1. wg set wg0 peer homelinux公钥 allowed-ips 192.168.2.2/32,192.168.1.0/24 persistent-keepalive 15

Mac

  1. brew install wireguard-tools

  2. sudo mkdir /etc/wireguard

  3. wg genkey | tee privatekey | wg pubkey > publickey

  4. touch wg0.conf

  5. [Interface]

  6. Address = 192.168.2.3/32

  7. PrivateKey = mac private key

  8. [Peer]

  9. PublicKey = vps public key

  10. Endpoint = vpsip:port

  11. AllowedIPs = 192.168.2.0/24,192.168.1.0/24

  12. PersistentKeepalive = 15

启动wg

  1. sudo wg-quick up wg0

VPS添加Mac wg

  1. wg set wg0 peer macwg公钥 allowed-ips 192.168.2.2/32 persistent-keepalive 15

分别三台机器互相ping,成功以后进行下一步。

设置转发规则

需要在各个机器上设置路由转发规则,否则流量到不了家里。

Mac

  1. 让目标网段的流量走指定网关

  2. sudo route -n add 192.168.31.0/24 192.168.2.1

VPS

  1. 开启流量转发

  2. net.ipv4.ip_forward = 1

  3. sysctl -p

  4. iptables -t filter -A FORWARD -i wg0 -j ACCEPT # 方形

  5. iptables -t filter -A FORWARD -o wg0 -j ACCEPT

  6. ip r add 192.168.1.0/24 via 192.168.2.1 dev wg0

Home Linux

  1. net.ipv4.ip_forward = 1

  2. sysctl -p

  3. iptables -t filter -A FORWARD -i wg0 -o homelinux网卡 -j ACCEPT

  4. iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o homelinux网卡 -j MASQUERADE

  5. iptables -t filter -A FORWARD -i homelinux网卡 -o wg0 -j ACCEPT

至此,已成。

Note

如果中间遇到网络问题,用以下命令调试即可。

  1. tcpdump -i wg0 -nn icmp


文章来源: https://mp.weixin.qq.com/s?__biz=MzUyMDgzMDMyMg==&mid=2247484471&idx=1&sn=bc0b0871744ea13073705d0517ba576e&chksm=f9e5282ace92a13c42e0c22ef7b502c99966a42b53f06278150d4150c278e8dacf410ee9a5f4&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh