手机、云服务器访问局域网(wireguard组网)

该文介绍了如何通过Wireguard在一台虚拟机上建立与云服务器的连接,并配置iptables以允许云服务器访问家里192.168.2.0/24网段的设备,同时安卓手机也能通过此连接访问。步骤包括在各设备上安装Wireguard,配置IP转发,编辑wg0.conf文件以及启动服务,并通过ping命令验证连接成功。
摘要由CSDN通过智能技术生成

环境

假设有以下设备:

  • 家里10台虚拟机(内网ip:192.168.2.101 - 192.168.2.110)
  • linux云服务器(公网ip:123.123.123.123)
  • 使用流量联网的安卓手机

目的:

  • 云服务器访问家里虚拟机
  • 手机访问家里虚拟机运行的网页

方案:

如果家里只有一两台设备,使用内网穿透工具(frp、ngrok等)也能完成,我需要搭建k8s集群,因此这里使用wireguard组网。

大概思路:

  • 选择一台虚拟机(192.168.2.101)使用wireguard与云服务器点对点连接
  • 配置iptables将从云服务器访问192.168.2.0/24段的流量转发至192.168.2.101

步骤:

1.安装wireguard(云服务器/192.168.2.101)

这里使用ubuntu系统,其他平台安装方法见wireguard官网

apt install wireguard openresol

2.确认开启Linux内核的IP转发(云服务器/192.168.2.101)

# 查看输出是否为1
sysctl net.ipv4.ip_forward

# 设为1开启
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf

# 使其生效
sysctl -p

3.启动wireguard(云服务器)

编辑/etc/wireguard/wg0.conf

[Interface]
Address = 10.10.0.1/32
ListenPort = 54321
PrivateKey = 云服务器私钥
PostUp = iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE; 
PostUp = iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT; 
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT;

[Peer]
PublicKey = 虚拟机101公钥
AllowedIPs = 10.10.0.2/32, 192.168.2.0/24
PersistentKeepalive = 15

[Peer]
PublicKey = 安卓手机的公钥
AllowedIPs = 10.10.0.3/32
PersistentKeepalive = 15

启动wireguard

wg-quick up wg0

4.启动wireguard(192.168.2.101)

编辑/etc/wireguard/wg0.conf

[Interface]
PrivateKey = 虚拟机101私钥
Address = 10.10.0.2/32

PostUp = iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -j SNAT --to-source 192.168.2.101
PostDown = iptables -t nat -D POSTROUTING -s 10.10.0.0/24 -j SNAT --to-source 192.168.2.101

[Peer]
PublicKey = 云服务器公钥
AllowedIPs = 10.10.0.0/24
Endpoint = 123.123.123.123:54321
PersistentKeepalive = 15

启动wireguard

wg-quick up wg0

5.启动wireguard(安卓手机)

安卓客户端配置

[Interface]
PrivateKey = 安卓客户端的私钥
Address = 10.10.0.3/32

[Peer]
PublicKey = 云服务器公钥
AllowedIPs = 10.10.0.0/24, 192.168.2.0/24     # 这里加入192.168.2.0网段
Endpoint = 123.123.123.123:54321
PersistentKeepalive = 15

6.验证

在虚拟机192.168.2.101上执行

ping 10.10.0.1

在云服务上执行

ping 10.10.0.2
ping 192.168.2.101
ping 192.168.2.102

确保以上都能ping通

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值