[[toc]]
1、Windows 10上开启路由转发及添加路由

注意:实验环境下主机B两个接口没有网关
操作步骤
一、主机B 开启 win10 转发功能
1、进入CMD

2、执行命令
reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v IPEnableRouter /D 1 /f

3、进入注册表
将 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\IPEnableRoute
设为1

4、启动Routing服务
将 Routing and Remote Access
服务的启动类型更改为自动并启动服务

5、进入CMD执行命令
sc config RemoteAccess start= autosc start RemoteAccess

二、主机A添加路由
Route add 192.168.114.0 mask 255.255.255.0 192.168.49.99
完成之后,ping测试即可。
2、通过WireGuard 访问节点所在局域网
方案一:wg-easy 作为服务器(docker)
总体思路:处于局域网的节点 A(开启 IP 转发及 NAT),wg 服务器设置(局域网网段走节点 A,开启 IP 转发及 NAT),局域网外的节点 B(局域网网段走 wg)
docker run -d --name=wg-easy3 -e LANG=chs -e WG_HOST=sanqiz.de -e PASSWORD=Zzh125475 -e PORT=37105 -e WG_DEFAULT_ADDRESS=10.0.2.x -e WG_DEFAULT_DNS=114.114.114.114 -e WG_PERSISTENT_KEEPALIVE=30 -e WG_PORT=37106 -e WG_ALLOWED_IPS=10.0.2.0/24,192.168.16.0/24 -e WG_PRE_UP="echo WireGuard PreUp" -e WG_POST_UP="iptables -I FORWARD -i wg0 -j ACCEPT; iptables -I FORWARD -o wg0 -j ACCEPT; iptables -I INPUT -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE" -e WG_PRE_DOWN="echo WireGuard PreDown" -e WG_POST_DOWN="iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -D INPUT -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE" -v D:/docker/wg-easy3:/etc/wireguard -p 37105:37105 -p 37106:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv4.ip_forward=1" --restart unless-stopped weejewel/wg-easy |
1、先启动容器(配置设置只读后,无法启动容器) ,在 web 上添加所有的节点
2、docker exec -it wg-easy
3、修改 wg0.conf 配置文件,将局域网网段添加到对应节点 A 的配置中 (vi /etc/wireguard/wg0.conf)
4、wg-quick down wg0
5、wg-quick up wg0
6、将 wg0.conf 设置为只读(wg-easy,在 web 上添加节点,会重置配置文件导致第 3 步失效),设置为只读保证稳定性
7、将对应局域网节点 A 设置 IP 转发及 NAT
a、如果节点 A 为 linux:
1)允许来自 wg0 的转发流量
iptables -I FORWARD -i wg0 -j ACCEPT iptables -I FORWARD -o wg0 -j ACCEPT
2)确保从 WireGuard 到局域网的流量被允许
iptables -I FORWARD -i wg0 -s 10.0.2.0/24 -d 192.168.16.0/24 -j ACCEPT iptables -I FORWARD -o wg0 -d 10.0.2.0/24 -s 192.168.16.0/24 -j ACCEPT
3)启用 NAT,使得流量能正确转发到本地网络
iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -d 192.168.16.0/24 -j MASQUERADE
b、如果节点 A 为 windows:
1)注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
中 IPEnableRoute 设为 1
reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v IPEnableRouter /D 1 /f
参考文章https://blog.csdn.net/weixin_44647835/article/details/109616688
2)在网卡控制面版中,开启物理网卡的共享,给 wg 网卡
方案二:windows 作为服务器(目前方案):
1、使用 wg-gen-web 生成配置
docker run -d -v D:/docker/wg-gen-web/data:/data -p 37100:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest
在web中进行设置
Interface configuration hooks 设置:
echo WireGuard PreUp
iptables -I FORWARD -i wg0 -j ACCEPT; iptables -I FORWARD -o wg0 -j ACCEPT; iptables -I INPUT -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo WireGuard PreDown
iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -D INPUT -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
2、wireguard 应用程序 导入配置
3、修改 wg0.conf 配置文件,将局域网网段添加到节点 A 的配置中
4、节点 A 设置 IP 转发及 NAT