极简记录:如何配置WireGuard内网访问
wireguard ,一个新时代的vpn
其主要特征是支持点对点(peer to peer)的访问,或构建一个虚拟局域网。
当然,我的主要目标很简单,还是利用wireguard实现最传统的VPN网关功能,也就是连接上wireguard之后可以直接访问路由器后家庭内网的任意主机,大概拓扑如下:
最简单的方式就是通过docker安装,github上有一个wireguard+配置面板的项目:
https://github.com/Place1/wg-access-server
以上图拓扑为例
1. 在主机192.168.1.101上安装docker
2. 执行以下命令,其中WG_ADMIN_PASSWORD字段是web登录的密码(账号为admin),WG_WIREGUARD_PRIVATE_KEY是本机的wireguard私钥,提前生成一个填进去就ok,如果本机已经装上了wg,直接这样变量的形式写上去也可以。我是在另外一个装好wireguard的机子上复制了一个key过去用了
export WG_ADMIN_PASSWORD="example"
export WG_WIREGUARD_PRIVATE_KEY="$(wg genkey)"
- 输入以下命令启动容器
docker run \
-d \
--cap-add NET_ADMIN \
--device /dev/net/tun:/dev/net/tun \
-v wg-access-server-data:/data \
-e "WG_ADMIN_PASSWORD=$WG_ADMIN_PASSWORD" \
-e "WG_WIREGUARD_PRIVATE_KEY=$WG_WIREGUARD_PRIVATE_KEY" \
-p 8000:8000/tcp \
-p 51820:51820/udp \
--restart unless-stopped \
--privileged=true \
place1/wg-access-server
- 访问http://192.168.1.100:8000 即可进入管理页面:
- 填写客户端名称后点击Add A Device,即可添加对端,之后将配置文件下载到办公主机即可,虚拟局域网ip,秘钥什么的都是自动配好的
- 需要注意的是,因为我们是在内网配的wireguard服务端,所以自动生成的配置连接的IP是内网的,需要手动conf文件内最后一行
Endpoint = 192.168.1.101:51820
改为Endpoint = 外网域名:51820
- 一切正常的话,就可以成功连接啦。后续通过192.168.1.x,就可以访问到内网的所有网段,估计已经把路由转发都给自动配置好了。
参考链接:
局域网组建(一) 远程办公实现 — WireGuard组建跨地域局域网(AlmaLinux+Docker)
通过WireGuard搭建隧道实现内网穿透
怎么通过 WireGuard 怎么访问局域网中其他设备
更多阅读
WireGuard基本原理
上一篇文章: 记一次金山信息泄露+github源码泄露getshell
下一篇文章: 实例理解DOM XSS与反射XSS之差