本帖最后由 hudan717 于 2022-7-28 13:44 编辑
本文面向群体:有公网IP,日常使用公网IP或动态域名进行内网访问的人群。
随着公网的普及,相信许多朋友都将自己的宽带转成了公网,拥有了属于自己的域名。
公网的好处有很多:下载体验好,传输速度快,使用方便,无需内网穿透,DDNS等第三方工具。
但是对应的,公网的缺点也很明显,就是不安全。
如果你的公网IP被别人知道了,别人就有可能利用这个公网IP入侵你的路由器,那么你的家庭设备就会很危险,包括你手机中的照片、家庭NAS、以及家庭摄像头之类的都极有可能被他人获取到内容。
如果你只在路由器上开启针对服务器的端口转发功能,那么黑客也可以轻而易举的得到权限对你的设备为所欲为。
因此,对使用公网的人来说,有一个靠谱的VPN用于回家是非常有必要的。
Wireguard就是一个非常优秀的VPN工具,支持多种设备的安装,HA也有Addon提供。
本文使用的是Openwrt上自带的Wireguard接口,如果你不使用Openwrt,也可以使用Wireguard的App进行设置,原理相同,触类旁通。
设置Homeassistant上的wireguard(以下简称WG)
1.在加载项商店中搜索wireguard进行安装
2.安装成功后,不要急着启动,首先点击配置
3.在配置中,我们能看到有两个部分,其中server中的内容是服务端信息,peers中的是客户端信息。
从上往下进行配置:
peers
- name: dahuha #任意名称
public_key: rz58/aUmj7padyVNOCOrDRgoQnkTz8C72yMr82AG4gQ= #暂时留空,稍后添加
addresses:
- 172.27.66.2 #默认不用改动,不与局域网内其他IP冲突即可
allowed_ips: [] #不用改
client_allowed_ips: [] #不用改
server
addresses:
- 172.27.66.1 #不用改
dns:
- 114.114.114.114 #填写其他国内DNS或局域网DNS都可以
host: www.dahuzuishuai.com #自己的公网域名
4.接下来,通过SSH获得OP上的服务端公钥
打开你的Putty或Finalshell,进入OP的SSH,创建公钥私钥。
mkdir wg
# 创建目录存放公钥私钥
cd wg
# 进入文件夹
umask 077
# 配置创建密钥的权限
wg genkey | tee server_privatekey | wg pubkey > server_publickey
# 创建服务端公钥和私钥
cat server_privatekey
# 获取服务端私钥复制保存
cat server_publickey
# 获取服务端公钥复制保存
保存好这里的公钥和私钥,同时把公钥复制到刚才配置文件的Public_key:后面,注意留一个冒号后面留一个空格,HA的文件配置就完成了,点击保存,并启动运行。
5.加载项运行后,我们点击日志
刷新几下以后可以看到客户端WG的公钥,保存好这个公钥。同时我们注意看下日志中Peer后面的公钥是否是我们刚才配置里填写的公钥,如果不是的话,检查以下配置内容是否填写有误。
6.此时HA上的操作基本就结束了,接下来我们转战到OP中进行配置。
在OP的状态栏中,有WG状态选项,在服务端未配置前,点开是没有任何内容的。
7.在下方网络选项中点击接口,随后添加新接口
接口名称随意,协议选择WireguardVPN,其余不动,点击创建
成功创建接口后,把刚才SSH中获得的私钥(Private key)填写到私钥栏中,
如果你在HA的配置中使用的是默认IP的话,则可以像我一样在IP地址中输入172.27.66.1/24
随后我们点击下方添加Peers,进行配置
公钥填写刚才加载项日志中复制的服务端Public_key
IP地址可以写的跟我一样(如果上面都是照做的话)
端点主机填写自己的公网域名
端点端口默认51820不要改
Keep Alive填写25
保存并应用
8.设置端口转发,把51820端口转发到公网
端口转发的方式每个路由器都不一样,我的主路由是爱快,这里给大家一个参考
注意,转发协议要选择UDP,转发的内网地址是自己的HA局域网地址
至此,所有设置基本就告一段落了,如果你的Openwrt是作为主路由使用的,那么你可以直接连接接口
在Wireguard状态中看到握手成功,说明配置完成,WG已经开始正常工作了。
9.如果你跟我一样,使用Openwrt作为旁路由使用,那么还需设置一下OP的防火墙
点击网络-防火墙-自定义规则
在最下方添加一行规则
iptables -t nat -A POSTROUTING -s 172.27.66.1/24 -o br-lan -j MASQUERADE
注意中间的IP地址要与你接口中设置的服务端地址一样
点击重启防火墙,(最好能够重启一下Openwrt),然后打开Wireguard接口即可。
10.如果以上步骤全部完成,最后遇到无法成功握手等问题的话,在HA后台文件中找到Wireguard文件夹,检查一下客户端的私钥是否被正确配置了
将私钥文件复制到你创建的配置文件夹中
打开conf文件,添加一行私钥配置代码即可(“=”后面不用添加任何东西)
|