VPN到家庭局域网





TL; DR:我将Wireguard安装在VPS上,从OpenWRT上的家庭路由器连接到它,然后从手机访问家庭子网。



如果您将个人基础结构保留在家庭服务器上,或者在家中有很多IP控制的设备,那么您可能希望通过工作,公共汽车,火车和地铁访问它们。通常,对于类似的任务,从提供商处购买IP,然后将每个服务的端口转发到外部。



相反,我设置了具有家庭局域网访问权限的VPN。该解决方案的优点:



  • 透明度:在任何情况下都感觉宾至如归。
  • 简便性:设置并忘记,无需考虑转发每个端口。
  • 价格:我已经有了一个VPS,对于这些任务,现代VPN在资源方面几乎是免费的。
  • 安全性:不会出现任何问题,您可以在没有密码的情况下离开MongoDB,并且没人会窃取数据。


与往常一样,它也有缺点。首先,您必须分别配置每个客户端,包括在服务器端。如果您有大量想要访问服务的设备,可能会带来不便。其次,在工作中,您可能具有与范围匹配的语言环境-您将必须解决此问题。



我们需要:



  1. VPS(以我在Debian 10上为例)。
  2. OpenWRT上的路由器。
  3. 电话。
  4. 带有某种Web服务的家庭服务器。
  5. 直臂。


我将使用Wireguard作为VPN技术。此解决方案也有优点和缺点,我将不再赘述。对于VPN,我使用子网192.168.99.0/24,但在家里却有192.168.0.0/24



VPS配置



对企业来说足够了,即使是30个卢布最猥琐的VPS一个月,如果你是幸运的一个抢夺



我从一台干净的机器上的根目录在服务器上执行所有操作,必要时添加`sudo`并修改说明。



Wireguard没有时间的稳定带来的,所以我在做`容易编辑sources`向后移植,并添加两行到文件中: 这个包被安装在通常的方式: 接下来,生成密钥对:。对于参与方案的每个设备,请重复此操作两次。更改另一台设备的密钥文件的路径,不要忘记私钥的安全性。 现在我们正在准备配置。配置位于文件中



deb http://deb.debian.org/debian/ buster-backports main

# deb-src http://deb.debian.org/debian/ buster-backports main





apt update && apt install wireguard



wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public



/etc/wireguard/wg0.conf



[Interface]

Address = 192.168.99.1/24

ListenPort = 57953

PrivateKey = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=



[Peer] # OpenWRT

PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=

AllowedIPs = 192.168.99.2/32,192.168.0.0/24



[Peer] # Smartphone

PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=

AllowedIPs = 192.168.99.3/32





[Interface]指示了机器本身的设置,并在[Peer]-设置中指明了要连接到机器的人。AllowedIPs路由到相应对等方子网以逗号分隔。因此,VPN子网中“客户端”设备的对等方必须具有mask /32,其他所有内容都将由服务器路由。由于家庭网络将通过OpenWRT路由,因此我们AllowedIPs将家庭子网添加相应的对等方。PrivateKeyPublicKey分解的VPS和同行的公共密钥生成的私钥,分别。



在VPS上,您仅运行命令,它将弹出界面并将其添加到“自动播放”中systemctl enable --now wg-quick@wg0可以使用命令检查连接的当前状态wg



OpenWRT配置



此步骤所需的一切都在luci模块(OpenWRT Web界面)中。登录到它,然后在“系统”菜单中打开“软件”选项卡。OpenWRT不在计算机上存储缓存,因此您需要通过单击绿色的“更新列表”按钮来更新可用软件包的列表。完成后,进入过滤器,luci-app-wireguard并在具有美丽依赖关系树的窗口中安装该软件包。



在“网络”菜单中,选择“接口”,然后单击现有接口列表下方的绿色“添加新接口”按钮。输入名称(同样wg0是我的情况)并选择WireGuard VPN协议后,将打开一个带有四个选项卡的设置表单。







在“常规设置”选项卡上,您需要输入私钥和为OpenWRT准备的IP地址以及子网。







在“防火墙设置”选项卡上,将接口连接到本地网络。因此,来自VPN的连接将免费进入局域网。







在“对等方”选项卡上,按唯一的按钮,然后在更新的表单中填写VPS服务器数据:公共密钥,允许的IP(您需要将整个VPN子网路由到服务器)。在“端点主机”和“端点端口”中,分别输入具有在ListenPort指令中指定的端口的VPS的IP地址。检查允许的路由IP创建路由。并确保填写Persistent Keep Alive,否则,如果VPS到路由器的隧道位于NAT之后,则从VPS到路由器的隧道将断开。











之后,您可以保存设置,然后在具有接口列表的页面上单击“保存并应用”。如有必要,请使用“重新启动”按钮显式启动界面。



设置智能手机



您将需要Wireguard客户端,并且可以在F-DroidGoogle Play和App Store上找到它。打开应用程序后,按加号,然后在“接口”部分中输入连接名称,私钥(将自动生成公钥)和带掩码/ 32的电话地址。在“对等”部分中,指定VPS公钥和两个地址:VPN服务器端口作为端点,并路由到VPN和家庭子网。



手机粗体截图




单击角落的软盘,将其打开并...



完成了



现在,您可以访问家庭监控,更改路由器设置或在IP级别执行任何操作。



本地截图











All Articles