使用WireGuard代理访问局域网

建立WireGuard链路

  • 首先建立Peer间WireGuard隧道连接,方法遵循WireGuardQuickStart入门即可
  • 注1:使用wg-quick调用/etc/wireguard/*.conf类型配置文件配置更多参数
  • 注2:使用systemctl enable wg-guick@*使WireGuard接口能够开机自动运行
  • 注3:Windows为例,Peer端不应选择“拦截未经隧道的流量”复选框,保证能够正常访问服务器Peer端局域网

启用服务器Peer端转发

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
sysctl -p

修改WireGuard配置文件

修改WireGuard配置文件使wg接口触发Up/Down事件时能够自动配置iptables规则。

[Interface]
... ...
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Add forwarding when VPN is started
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # Remove forwarding when VPN is shutdown
... ...

上述配置中包含wg接口名和转发出口名,按需修改成实际接口。