<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      折騰指南: 將光貓改造成你的NAS,WebDAV+網頁文件管理器vList5+natmap

      原文:https://hi.imzlh.top/2024/07/18.cgi (預發布)

      很久沒有寫完全折騰類文章了,這還得追溯到上次折騰S905L3A那會。
      這篇文章很長,但是是小白級包學會。

      為什么會有這篇文章?

      關于為什么我會想到折騰光貓,見 https://hi.imzlh.top/2024/03/02.cgi
      這篇文章本來應該在4個月前就完成了,但是我一直都在折騰NAS軟件
      其中我也嘗試了很多方法,奈何時間不足斷斷續續的

      • WebList,前身叫做 weborf,是一個小巧的支持簡單的WebDAV的程序
        我修改了一下UI和認證部分,改動不多但是性能不強,且只能服務靜態文件,很快拋棄
      • MomentPHP,前身是PHPMVC,經過兩個月的擴充,已經很全能了
        可惜不知道是什么原因,總是莫名其妙出點問題性能也不可樂觀,上個月后就拋棄了
      • vList5,前身是vList3,同樣是為了Nginx設計,只不過改成了njs作為平臺
        繼承了NGINX超強并發,使用了VUE絕對響應式,在昨天正式完成主要功能

      至于為什么會這么折騰,完全是因為光貓限制比較大。詳細的內容看原文即可,我們現在開始吧

      準備一臺光貓

      這個材料很好找,一般的光貓都可以,但是有些光貓鎖得很死,很考驗大家的技術

      為光貓解鎖telnet

      為什么是telnet呢

      • telnet方便,可以遠程管理
      • 有些機器甚至tty串口都鎖死了,只能破解telnet

      case1:熱門機型直接找

      這一步就需要大家熟練使用搜索引擎了。
      型號很好找,直接打開 管理頁面,去網上搜索就輕松找到

      我的是H60G

      case2:找不到或失敗

      可以嘗試一些工具,比如 針對ZTE機型的爆破工具
      這里就不重點介紹了,感興趣的自己研究

      連接到光貓

      下載 putty,telnet連接到192.168.1.1
      賬號密碼就是上一步爆破得來的,直接輸入就行了

      putty

      有的畜生光貓默認給的權限不是root,這個時候移動root密碼一般都是 aDm8H%MdA,其他的我也不清楚請自行搜索
      建議固定到Windows剪貼板( Win標 + V )上,下一次登錄就很方便了

      剪貼板

      為光貓干掉TR069

      成功

      運營商有一個坑爹的東西叫做遠程管理,能批量遠程配置
      一旦配置下發,你可能就又得再重新配置一次了(《從0開始的折騰之旅》)
      因此為了杜絕后患,必須得把遠程管理這個隱患干掉

      sidbg or sendcmd

      我接觸過兩種光貓,有兩種管理工具,除了名字不一樣,命令是一樣的
      你可以試試看哪種命令適合你的光貓

      sendcmd 1 DB set WANC 0 Enable 0
      sidbg 1 DB set WANC 0 Enable 0
      

      然后你也可以順便改一下超級密碼,這樣下次Web端登錄會更方便
      (比如我家的光貓就是賬號 root 密碼 toor ,怎么樣好記嗎)

      sidbg 1 DB set DevAuthInfo 0 User [賬號]
      sidbg 1 DB set DevAuthInfo 0 Pass [密碼]
      

      查看架構

      ~ $ cat /proc/cpuinfo
      processor : 0
      model name : ARMv7 Processor rev 1 (v7l)
      BogoMIPS : 1594.16
      Features : half thumb fastmult edsp tls
      CPU implementer : 0x41
      CPU architecture : 7
      CPU variant : 0x4
      CPU part : 0xc09
      CPU revision : 1

      processor : 1
      model name : ARMv7 Processor rev 1 (v7l)
      BogoMIPS : 1594.16
      Features : half thumb fastmult edsp tls
      CPU implementer : 0x41
      CPU architecture : 7
      CPU variant : 0x4
      CPU part : 0xc09
      CPU revision : 1

      Hardware : ZTE ZX279128 (Device Tree)
      Revision : 0000
      Serial : 0000000000000000

      • 首先看 processor,有兩個,是古董級雙核處理器
      • 再看 model name,是Armv7l,ARM的最后一代32位處理器
      • 最后是 Features,沒有vfp,就是 arm-eabi,有vfp那就是arm-eabihf
      • 最后可以了解一下CPU,通過 Hardware 可以了解,比如我這一塊CPU就是

        ZX279128S是一款功能強大的SoC(System on Chip)芯片。芯片內嵌ARM Cortex A9雙核處理器 以及豐富的外設,使用AXI高性能總線實現互聯,CPU的頻率達到1000MHz,可實現復雜協議報文的處理。

      armv7,但是沒有vfp,那就當作是armv5,或者說是armel,別搞錯了
      mips的可能稍微難搞一點,下文可能需要自己編譯軟件

      考慮安家位置

      這個很重要,劃重點
      根目錄大多是有CRC校檢的或者直接打包進內核的,bin這類文件夾大多放在根目錄。所以想要重啟后不消失或者不變磚,建議找/usr/data,空間也大
      或者這里更建議扔到自啟動腳本周圍,如我的光貓就保存到/usr/local/osgi/,方便
      下文默認所有文件都保存到/usr/local/osgi/,如果不是,你可能需要修改nginx配置并替換所有出現的/usr/local/osgi/

      舉個例子

      準備軟件

      想要ctrl作為軟件管理程序?自行參考 我寫的文章
      [懶人版一鍵復制] 這里假設你的光貓有curl自帶,如果沒有,參考 https://hi.imzlh.top/2024/03/02.cgi

      # aria2
      curl https://hi.imzlh.top/usr/uploads/2024/03/971539169.gz -k | gunzip - > aria2
      # nginx
      curl https://hi.imzlh.top/usr/uploads/2024/07/1871251897.gz -k | gunzip - > nginx
      # natmap
      curl https://hi.imzlh.top/usr/uploads/2024/07/1468987588.gz -k | gunzip - > natmap
      

      配置nginx

      首先,你需要安裝vList5和一個fancyindex美化包,方法也非常簡單
      假設你的硬盤已經掛載到了/mnt,如果沒有,請執行mount /dev/sda /mnt

      curl -Lk https://github.com/imzlh/vlist-njs/releases/download/master/vlist5.js -o /usr/local/osgi/vlist.js
      cd /mnt
      curl https://github.com/imzlh/vList5/releases/download/main/vlist5_latest.tgz -Lk | tar xz
      mkdir .static
      cd .static
      curl https://hi.imzlh.top/usr/uploads/2024/07/2093537519.gz -k | tar xz
      

      關于nginx配置文件這里直接抄作業就行了,保存到 /usr/local/osgi/etc/nginx/nginx.conf
      我可是研究了將近一天研究出來了這一份高性能高并發的nginx配置
      (B:你似乎很驕傲啊,你知不知道,你這一句就相當于赤裸裸地在說 “快夸我,快給我三連”啊?)
      (別忘了新建文件夾,mkdir /usr/local/osgi/etc/nginx/)

      worker_processes                                auto;
      
      events {
              accept_mutex                            on;
              multi_accept                            on;
              use                                     epoll;
              worker_connections                      1024;
      }
      
      http {
              include                                 mime.types;
              default_type                            application/octet-stream;
              log_format                              main '$status $remote_addr $request';
              access_log                              /tmp/nginx/access.log main;
      
              tcp_nopush                              off;
              tcp_nodelay                             on;
      
              client_max_body_size                    256m;
              client_body_buffer_size                 128m;
              client_header_timeout                   1m;
              client_body_timeout                     10m;
              send_timeout                            10m;
              reset_timedout_connection               on;
              client_body_in_file_only                clean;
              client_body_in_single_buffer            on;
      
              gzip                                    on;
              gzip_min_length                         1024;
              gzip_buffers                            4 128k;
              gzip_types                              text/plain;
              gzip_vary                               on;
      
              output_buffers                          2 128k;
              postpone_output                         1460;
              sendfile                                on;
              sendfile_max_chunk                      256k;
              directio                                4m;
              keepalive_timeout                       1h;
              open_file_cache                         max=1024 inactive=1m;
              open_file_cache_min_uses                4;
      
              server_tokens                           off;
      
              proxy_cache_path                        /tmp/nginx/cache/ levels=1:2
                                                          keys_zone=thumb:1M inactive=10h max_size=256M;
              proxy_http_version                      1.1;
              ssl_session_cache                       shared:SSL:1m;
      
              dav_ext_lock_zone                       zone=dav:1m timeout=1h;
      
              js_shared_dict_zone                     zone=njs:1m type=string;
              resolver                                114.114.114.114 223.5.5.5 8.8.8.8;
      
              http2_recv_buffer_size                  128k;
              http2_chunk_size                        128k;
              http3_stream_buffer_size                128k;
      
              server {
                      listen                          81;
                      # listen                          [::]:8443 ssl;
                      # listen                          [::]:444 quic;
                      listen                          [::]:88;
      
      
                      # http2                           on;
                      # http3                           on;
      
                      # ssl_certificate                 [證書cer/crt文件];
                      # ssl_certificate_key             [證書key文件];
                      # ssl_protocols                   TLSv1.2 TLSv1.3;
                      # ssl_buffer_size                 32k;
                      # ssl_early_data                  on;
                      # ssl_session_timeout             10m;
      
                      root                            /mnt/;
                      index                           index.html;
      
                      fancyindex                      on;
                      fancyindex_localtime            on;
                      fancyindex_exact_size           off;
                      fancyindex_header               /.static/header.html;
                      fancyindex_footer               /.static/footer.html;
                      fancyindex_css_href             /.static/core.css;
                      fancyindex_default_sort         name;
                      fancyindex_show_path            off;
                      fancyindex_hide_parent_dir      on;
                      fancyindex_time_format          "%y/%m/%d %H:%M";
      
                      charset_types                   *;
                      charset                         utf-8;
      
                      dav_methods                     PUT DELETE MKCOL COPY MOVE;
                      dav_ext_methods                 PROPFIND OPTIONS LOCK UNLOCK;
                      dav_access                      user:rw group:rw all:r;
                      create_full_put_path            on;
                      dav_ext_lock                    zone=dav;
      
                      # js_path                               lib/nginx/;
                      js_import                               /usr/local/osgi/lib/nginx/vlist.js;
                      js_import                               /usr/local/osgi/lib/nginx/ddns.js;
                      js_fetch_buffer_size            128k;
                      js_fetch_max_response_buffer_size 4m;
                      js_fetch_timeout                30s;
                      js_fetch_verify                 off;
      
                      add_header      Alt-Svc                         'h3=":444"; h2=":8443"; ma=86400';
                      add_header      Access-Control-Allow-Origin     * always;
                      add_header      Access-Control-Allow-Headers    "Content-Type, Authorization" always;
      
                      location = /@api/{
                              js_var                  $authkey "[請自己設一個密碼]";
                              js_content              vlist.main;
                      }
              }
      }
      

      PS 想要SSL? 打開注釋掉的內容即可

      考慮:動態更新

      在這么精簡的系統內,如何處理 請求更新 呢?
      那只有使用 curl 才行。如果沒有請使用 wget也差不多(嘛,HTTPS就別想了)

      參考readme.md,這是適用于natmap地自動更新腳本的參數列表

      argv[0]: Script path
      argv1: Public address (IPv4/IPv6)
      argv2: Public port
      argv3: IP4P
      argv4: Bind port (private port)
      argv5: Protocol (TCP/UDP)
      argv6: Private address (IPv4/IPv6)

      所以腳本也很好寫(保存到/usr/local/osgi/update.sh,別忘了chmod +x update.sh):

      #!/bin/sh
      # 換成自己的動態重定向服務,如我的是redirect.php
      curl https://[你的服務地址]?addr=$1:$2 -k
      # wget也可以,但是不支https
      wget http://[你的服務地址]?addr=$1:$2 -O - >> /dev/null
      

      對于所有系統,直接使用 cat > update.sh,輸完了 Ctrl+D 即可
      (如果系統很好心提供了vi,那就更方便了,比如我的H60G就很良心地提供了busybox vi)

      #!/bin/sh
      curl https://....?addr=$1:$2 -k ^D
      

      這樣就OK了

      考慮:自啟動

      除非你家的光貓 7x24 小時開機,不然難免會想要自啟動
      我最開始修改了etc文件夾里的文件,第一臺變磚第二臺直接還原。
      最后很簡單,直接暴力干掉插件系統就行了(java...如果你有需要建議留著)

      參考了這篇文章,不僅干掉了java插件系統,大幅度優化之外還提供了自啟動管理
      但是還是不能照抄,因為我們的java掛載不是鏡像,而是完整的磁盤分區

      Filesystem 1K-blocks Used Available Use% Mounted on
      /dev/mtdblock12 30720 14464 16256 47% /usr/local/osgi
      那就更好辦了,直接find出手找到java文件
      $ cd /usr/local/osgi/
      /usr/local/osgi $ find ./ -name java
      ./local/j2re/bin/java

      替換成以下內容就行了
      (這里吐槽一下,垃圾光貓權限都不給足,還需要su升權,詳情:https://hi.imzlh.top/2024/03/11.cgi)

      #!/bin/sh
      
      if [ ! -f /tmp/services.log ]
      then
      
              while true
              do
                      curl -sk http://www.gstatic.com/generate_204 && break
                      sleep 10
              done
      
              echo aDm8H%MdA | su -c "/usr/local/osgi/rc.sh" -l root > /tmp/services.log &
      
      else
              echo "services already started"
      fi
      
      exit 1
      

      接下來是自啟動腳本 /usr/local/osgi/rc.sh,這個腳本里是有root權限的
      這里,我們需要啟動nginx和natmap
      注意 千萬別忘記mkdir /tmp/nginx/,不然nginx會啟動報錯的

      cd /usr/local/osgi/
      ./natmap -4 -k 8 -s stunserver.stunprotocol.org -h baidu.com -t 192.168.1.2 -p 80 -d -e update.sh
      mkdir /tmp/nginx/
      ./nginx
      

      建議添加一行用來掛載USB磁盤

      mount /dev/sda /mnt
      

      保存重啟
      OK!全文完。

      posted @ 2024-07-17 15:03  imzlh  閱讀(2629)  評論(13)    收藏  舉報
      主站蜘蛛池模板: 免费国产午夜理论片不卡 | 一区二区三区四区激情视频 | 蜜臀精品国产高清在线观看| 色老99久久九九爱精品| 漳平市| 欧美做受视频播放| 国产无吗一区二区三区在线欢| 国产精品色呦呦在线观看| 亚洲va久久久噜噜噜久久狠狠| 亚洲大尺度一区二区av| 深夜释放自己在线观看| 人人澡人摸人人添| 亚洲精品成人综合色在线| 亚洲红杏AV无码专区首页| 国产精品三级爽片免费看| 精品久久久久久无码中文野结衣| 99久久免费精品国产色| 亚洲国产成人资源在线| 日本福利一区二区精品| 亚洲精品一区二区三区大桥未久| 丰满的女邻居2| 西西444www高清大胆| 潮喷失禁大喷水无码| 国产成人午夜精品永久免费| 久久亚洲精品无码播放| 亚洲另类丝袜综合网| 亚洲全乱码精品一区二区| 日本另类αv欧美另类aⅴ| 久久久亚洲欧洲日产国码αv| 18禁免费无码无遮挡不卡网站| 成人精品色一区二区三区| 国语精品自产拍在线观看网站| 无码熟妇人妻AV影音先锋| 国产精品一区二区三区激情| 亚洲国产中文字幕在线视频综合| 日本伊人色综合网| 吴忠市| 欧美丰满熟妇性xxxx| 久久精品亚洲国产成人av| 福利一区二区视频在线| 中文国产成人精品久久不卡|