一、背景:

问题发生在我每个月例行编译升级OpenWrt之后,在保留配置的基础上更新,导致:

  1. 使用原密码在web端无法登录。
  2. 使用原密码在ssh中可以登录。

    加之我最近又在使用保留配置的方法编译,同时又去除了不喜欢的主题升级。
    导致我以为问题出现在:
  3. 删除原来的主题包导致的web端无法登录。
  4. 使用原来的network配置编译固件导致的无法登录。

到最后才发现真正的原因是:大版本升级导致的web端无法登录,不是bug,是必然。详见此处

二、困难

  1. 此时已经把软路由邮寄过来了,放在原处的ubuntuserver根本没法登录。
  2. 即便登录上了,也无法git pull更新源码。

三、解决困难

  1. 先解决不能登录ubuntuserver的问题。
  • 先让设置好硬路由,保证可以上网。
  • 打开家里的笔记本,安装一些可以远程的软件:Rustdesk、向日葵等。
  • 确保可以通过网络远程控制家里的ubuntuserver。并让摄像头可以正常工作。
  1. 再解决无法登录家中nas、ubuntuserver的问题。
  • nas安装zerotier
  • ubuntuserver安装zerotier
  • 先让以上的设备不通过ddns在一个局域网内。
  1. 可以通过笔记本进入ubuntu,那么就是开始编译了。
  • 通过putty进入ubuntuserver的lede文件夹,但是发现无法git pull。
  • 那么既v2ray可以允许局域网的设备访问,而通过zerotier这些设备又在一个局域网内,那么就可以让ubuntuserver使用dell的v2ray来访问了。
  • 搜索了下,确实可以这么干,链接
    于是使用以下命令,让http和https的通过v2ray的端口。
1
2
export https_proxy=http://10.10.10.8:10809   #https通过dell电脑
export http_proxy=http://10.10.10.8:10809 #http 通过dell电脑


或者是让所有的流量都经过socks5的端口:

1
export ALL_PROXY=socks5://10.10.10.8:10808

这样就可以在更新时,更新的流量走允许局域网访问的v2ray。
其中图片中10.10.10.4是ubuntuserver;10.10.10.8是dell笔记本。

  1. 新的固件编译时,加入了zerotier插件,这样在路由器启用,接入网络后,就让ubuntu通过路由器进行转发。
1
export ALL_PROXY=socks5://10.10.10.5:1080

其中10.10.10.5是软路由在zerotier中的ip。

在软路由中,需要打开对应的端口。如下图:

为防止文章丢失,参考文章截图如下: