关于LEDE软路由的相关的一切

今天突然想到,为何要用那么傻的onenote。我直接就在这里记录一切就好。回头加一个搜索引擎。

我的登陆链接

  1. lede
  2. ubuntu:192.168.2.203
  3. home assistant
  4. esxi

我的esxi界面(当asus做路由开了个子网络时)

  1. lede
  2. ubuntu:192.168.3.22
  3. home assistant
  4. asus
  5. esxi

esxi的安装

软路由esxi的安装就是用u盘制作PE系统,启动后用下载的iso把esxi安装进去。记得进我的百度云盘看看去,里面有很多这样的参考文件。

DDNS

我的ddns设置其实是比较搞的。绕了一圈,但是完美解决。我没有用lede中的ddns service。而是使用了freedns.afraid.org中的ddns service服务。里面设置很简单,我举个例子。如下图,

你直接点击其中的direct URL马上就可以更新到网址对应的IP。这个URL里面是包含的一个key token的。我们需要做的呢,就是把这句话(不知要不要先登记account credential,我想应该是不要的)

4,9,14,19,24,29,34,39,44,49,54,59 * * * * sleep 12 ; wget --no-check-certificate -O - https://freedns.afraid.org/dynamic/update.php?Tzxxxxxxxxxxxxxxxxxxx

而且freedns中有一个很贴心的就是,如果几个域名的ip一样的话,一次性就都改了。

加入到lede软路由的ubuntu instance上,以crontab -e的方式。背后它就每隔5分钟登陆这个update ip地址。一样就不变,不一样就变。我们可以用如下命令看到是否有修改的效果。

cat /tmp/freedns_home_colors4_us.log

这里要注意的是有时候,DDNS会被变更为我vps的ip地址。原因很简单,因为我搭梯子了。解决方式就是,将freedns的网址加入白名单,强制不走梯子。

很有意思的是,我在使用了v2ray了以后,home.colors4.us每隔五分钟会自动变成ru.colors4.us,过不久hass也会变。我都不知道是何原因。后来想通了,v2ray的封包会把所有从家里服务器出来的数据以ru的地址显示出来,一样的,freedns自然就接受这个ip地址进行广播。解决方法也很简单,v2ray客户端设置白名单,强制freedns不走代理。

设置lede和home assistant的SSL访问

参考文章:

  1. LEDE申请并部署Let's encrypt证书的教程
  2. How to use DNS API
  3. let's encrypt申请由很多套路。以前一直出错的套路是,它登陆你的网页来验证,如果本身访问网络没整好,它一访问肯定就露馅的;所以我对文章1中的申请方式非常认可。它用访问你对DNS 上网站所有权的方式来确权,同时,你需要确认你的网页在port forwarding后起码是可以访问到的,即使是从外网的80forward到8123.如下图的hass.cert。我仅需要在更新证书时候,打开就好,其他时候关闭。
  4. Set up encryption using Let's Encrypt -- home assistant。这篇文字的可取之处在于下图

    实际上我的yaml configuration是这样的

    其他诸如如何申请证书,我还是建议用1.3的方法。

需要注意的要点如下:

  1. 切记按照文章所说的,每一步都要做。包括lede中uhttpd。和端口转发等,后图是我转发端口的截图可以直接用home.colors4.us
  2. export的格式一定要用' ', 不能用其他的分号。不然会出错。完了记得用export -p看一下。
  3. 有个想法,这个证书其实可以很多不同的instance都用。回头可以试试。

快速恢复重启后的LEDE设置

  1. 每次进行重大活动前,要关机ubuntu和LEDE。做快照。
  2. lede中开启后,要在系统-备份升级和酷软中的ssr中备份设置文件。以备出问题时回滚。

lede的wan lan设置

一开始确实非常多的折腾。我直接截图吧。要搞清楚哪个口是wan口,哪个是lan口,不行就对调一下试试。

一级路由的设备访问二级路由

设置好后,能不能成功。直接看外网可不可以访问到二级路由的设备。


其中192.168.2.200是路由器分配到wan的ip地址。所有连接路由器的设备都在192.168.3.0的网段。

esxi外网访问

简单的http访问直接这样设置后就可以用这个网址来登陆了。
但是我想用更好的方法,用https访问。

asus的外网访问

一次次证明,已经生成好的cert是可以分享给其他instance使用的。于是我把hass.colors4.us的证书考到了华硕路由器中的/jffs/ssl中,其中

cp fullchain.cer cert.pem
cp hass.colors4.us.key key.pem

然后重启一下asus路由,并添加了如下的端口转发于是asus也是ssl登陆了。

ssh远程登录

先登录上ubuntu,然后由ubuntu再ssh到其他instance。
打开port forward到ubuntu的22

为安全起见,最好回头再改为key登录或是改ssh port。

其他

关闭80端口的访问

使用 Nginx 转发 VMware ESXi,这篇可以解决不加后缀端口的需求。再看看吧。
这个方法如果可以倒是可以试试看。从 ESXi Shell 替换默认 ESXi 证书和密钥

先登录ubuntu。ssh到esxi,拷贝文件。然后关闭lede。之后ssh到esxi直接重起,因为ubuntu不能重启,否则,无法给到esxi ssh命令。完美解决。

记得备份vmdk,如果nuc的硬盘坏了就不好了。lede恢复应该很快。ubuntu要安装不少东西。