2025年5月26日 星期一

大乐透号码选取器

大乐透号码选取器 (带历史记录)

大乐透号码选取器

前区号码 (5个,01-35)
-- -- -- -- --
后区号码 (2个,01-12)
-- --

历史号码

  • 加载历史号码中...

2024年1月27日 星期六

Calibre_web administrator password forget

Forget your Calibre-Web administrator password? No problem! If you're running Calibre-Web via Docker, you can easily reset it using a command that specifies the app.db file.


Resetting Your Calibre-Web Admin Password

Here's how to reset your admin password for Calibre-Web in a Docker environment:

  1. Access your Docker container: Open your terminal or command prompt.

  2. Execute the reset command: Use the following docker exec command. This command tells Docker to run a script inside your Calibre-Web container to reset the password.

    Bash
    docker exec -it calibre-web /app/calibre-web/cps.py -p /config/app.db -s admin:yournewpassword
    

    Explanation of the command:

    • docker exec -it calibre-web: This part executes a command inside your running Docker container named calibre-web. (If your container has a different name, replace calibre-web with its actual name.)
    • /app/calibre-web/cps.py: This is the path to the Python script within the Calibre-Web container that handles password resets.
    • -p /config/app.db: This crucial part specifies the path to your Calibre-Web database file (app.db). This is where user credentials are stored. For most Docker installations, it's located at /config/app.db inside the container.
    • -s admin:yournewpassword: This sets the password for the admin user. Replace yournewpassword with the actual new password you want to use.

Important Notes:

  • Container Name: Double-check your Calibre-Web Docker container's name. You can find it by running docker ps.
  • app.db Path: The /config/app.db path is standard for Calibre-Web Docker setups, but if you've customized your volumes, ensure this path correctly points to your database file within the container.
  • Choose a Strong Password: When setting yournewpassword, choose a strong, unique password for security.

After running this command, your administrator password for Calibre-Web will be reset to the new password you specified. You should then be able to log in to your Calibre-Web interface with the updated credentials.

ModuleNotFoundError: No module named 'flask' on calibre_web

您提供的日誌清晰地顯示了 Calibre-Web 在 Docker 容器中啟動時遇到的 ModuleNotFoundError: No module named 'flask' 錯誤,以及您是如何成功解決這個問題的。

這個錯誤訊息非常明確地指出,Python 無法找到 flask 這個模組。Flask 是一個 Python 的 Web 框架,Calibre-Web 正是基於它構建的,所以它是 Calibre-Web 運行所必需的。

問題原因:

您已經找到了原因並解決了它:flask 模組雖然可能已經安裝在容器內的某個位置,但 Python 的搜尋路徑(即 PATH 環境變數)並沒有包含 flask 模組所在的目錄。因此,當 Calibre-Web 嘗試導入 flask 時,找不到它。

解決方案(您已成功執行):

您通過修改容器的 ENV PATH 環境變數來解決了這個問題,將 /lsiopy/bin 路徑添加進去:

fixed: editing the container ENV PATH to: /lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

解釋:

  • /lsiopy/bin 這個路徑很可能是 LinuxServer.io (LSIO) 提供的 Calibre-Web Docker 映像中,Python 虛擬環境或其依賴項(包括 Flask)被安裝的位置。
  • 當這個路徑被添加到 PATH 環境變數後,Shell(以及 Python 解釋器)在尋找可執行檔或模組時,就會在這個新添加的路徑中進行搜尋,從而成功找到並加載 flask 模組。

成功標誌:

您在日誌中看到以下訊息,證明問題已解決,並且 Calibre-Web 已經成功啟動:

Success
==================================================================================================
[migrations] started
[migrations] no migrations found
───────────────────────────────────────
██╗      ███████╗██╗     ██████╗
██║      ██╔════╝██║    ██╔═══██╗
██║      ███████╗██║    ██║  ██║
██║      ╚════██║██║    ██║  ██║
███████╗ ███████║██║    ╚██████╔╝
╚══════╝ ╚══════╝╚═╝     ╚═════╝
Brought to you by linuxserver.io

這段 ASCII 藝術的 Calibre-Web 標誌以及 [ls.io-init] done. 訊息都確認了應用程式已經成功初始化並準備運行。

總結:

這個問題是一個典型的環境變數配置錯誤,導致 Python 無法找到所需的模組。通過將正確的路徑添加到容器的 PATH 環境變數中,您有效地引導 Python 找到了 flask,從而解決了 ModuleNotFoundError。這對於使用 Portainer 管理 Qnap 上的 Docker 容器的用戶來說,是一個很好的故障排除案例。

2023年2月9日 星期四

Docker install Trojan-go Xray

方法一:选择时区 1.执行命令: dpkg-reconfigure tzdata 2.选择Asia->Shanghai 防止系统重启后时区改变,执行下面一行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 参考处处: 作者:Leon_Geo 链接:https://www.jianshu.com/p/ef851a01d9de ================== Trojan-go SETUP ======================

docker run \
    --name trojan-go \
    -d \
    -v /etc/trojan-go/:/etc/trojan-go \
    --network host \
    p4gefau1t/trojan-go
   
tls 证书 同样copy into /etc/trojan-go
geoip 等路径 默认为docker image 内置的路径,不需要修改:  /usr/bin

config.json:

{
    "run_type": "server",
    "local_addr": "0.0.0.0",
    "local_port": 12345,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "password": [
        "Password1"
    ],
    "ssl": {
        "cert": "/etc/trojan-go/**.crt",
        "key": "/etc/trojan-go/**.key",
        "sni": "  youdomain.com  ",
        "alpn": [
             "http/1.1"
        ],
        "fallback_port": 80
    }
}

================== Xray SETUP ======================

docker run -d -p 12345:12345 --name xray --restart=always -v /etc/xray:/etc/xray teddysun/xray

config.json:
{
  "log": {
    "loglevel": "error"
  },
  "inbounds": [
    {
      "port": 12345,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "  UUID  ",
            "flow": "xtls-rprx-direct",
            "level": 0,
            "email": "asafss@exadeeefdmple.com"
          }
        ],
        "decryption": "none",
        "fallbacks": [
          {
            "dest": 80,
            "xver": 1
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "xtls",
        "xtlsSettings": {
          "alpn": [
            "http/1.1",
            "h2"
          ],
          "certificates": [
            {
              "certificateFile": "youdomain.crt",
              "keyFile": "youdomain..key"
            }
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom"
    }
  ]
}

2023年2月2日 星期四

在 Docker 中為 Brother DCP-T310 安裝 CUPS 驅動程序

本指南將引導您如何在 Docker 容器中設定 CUPS 服務,並為 Brother DCP-T310 多功能印表機安裝驅動程序。由於 Brother DCP-T310 沒有官方的 64 位 Linux 驅動程序,我們將利用 Brother 官方提供的安裝腳本來解決此問題。

必要條件:

  • 已安裝 Docker 和 Portainer (或 Docker CLI)。
  • Brother DCP-T310 印表機已連接到您的主機。

步驟 1:部署 CUPS Docker 容器

我們將使用 olbat/cupsd 映像來創建 CUPS 服務容器。

使用 Portainer 部署 (推薦):

  1. 登入您的 Portainer 儀表板。
  2. 導航到 "Containers" (容器) -> "Add container" (添加容器)。
  3. Image (映像): 輸入 olbat/cupsd
  4. Name (名稱): 輸入 cupsd (或其他您喜歡的名稱)
  5. Port mappings (端口映射):
    • 631 (Host) 映射到 631 (Container)。這將允許您通過主機的 631 端口訪問 CUPS 網頁介面。
  6. Volumes (儲存卷):
    • Bind (綁定):/var/run/dbus (Host) 映射到 /var/run/dbus (Container)。這是為了讓 CUPS 能與主機的 D-Bus 系統通信,尤其對於 USB 設備管理很重要。
    • Bind (綁定):/dev/bus/usb (Host) 映射到 /dev/bus/usb (Container)。這一步至關重要,它允許容器直接訪問主機的 USB 設備,包括您的印表機。
  7. Runtime & Resources (運行時與資源):
    • 勾選 "Privileged mode" (特權模式)。由於容器需要直接訪問 USB 設備和底層系統資源,特權模式是必需的。

使用 Docker CLI 部署:

在您的終端機中運行以下命令:

Bash
docker run -d \
  -p 631:631 \
  -v /var/run/dbus:/var/run/dbus \
  -v /dev/bus/usb:/dev/bus/usb \
  --name cupsd \
  --privileged \
  olbat/cupsd

步驟 2:在 CUPS 容器內安裝 Brother DCP-T310 驅動程序

由於 Brother DCP-T310 沒有現成的 64 位驅動程序,我們需要進入容器內部,執行 Brother 官方提供的安裝腳本。

  1. 進入 CUPS 容器的 Shell:

    • 使用 Portainer: 導航到 "Containers" (容器),找到您的 cupsd 容器,點擊其名稱,然後點擊 "Console" (控制台) 或 "Exec console" (執行控制台),選擇 shbash
    • 使用 Docker CLI:
      Bash
      docker exec -it cupsd bash
      
  2. 下載並運行 Brother 印表機安裝程序: 在容器的 Shell 內,依序執行以下命令:

    Bash
    # 下載 Brother 官方安裝腳本
    wget https://download.brother.com/welcome/dlf006893/linux-brprinter-installer-2.2.3-1.gz
    
    # 解壓縮
    gzip -d linux-brprinter-installer-2.2.3-1.gz
    
    # 賦予執行權限並運行安裝腳本
    # 當腳本提示您輸入印表機名稱時,輸入 "DCP-T310"
    bash linux-brprinter-installer-2.2.3-1 DCP-T310
    

    注意:

    • 安裝腳本會引導您完成安裝過程。當提示您選擇印表機型號時,請確認輸入 DCP-T310
    • 腳本可能會詢問您是否要安裝相關依賴、配置網路等,請根據提示操作。通常,對於 USB 連接,您可能需要選擇 USB 或自動檢測選項。
  3. 退出容器 Shell: 完成驅動程序安裝後,輸入 exit 退出容器的 Shell。


步驟 3:在 CUPS 伺服器中添加印表機

現在驅動程序已經安裝在容器中,您可以通過 CUPS 網頁介面添加您的印表機。

  1. 訪問 CUPS 網頁介面: 在您的網頁瀏覽器中打開 http://127.0.0.1:631 (如果您的 Docker 主機 IP 地址不是 127.0.0.1,請替換為實際 IP)。

  2. 登入 CUPS 介面: 點擊 "Administration" (管理)。當要求輸入使用者名和密碼時:

    • 使用者名稱: print
    • 密碼: print
  3. 添加印表機: 在 "Administration" 頁面下,點擊 "Printers" (印表機) 部分的 "Add Printer" (添加印表機)。

    • CUPS 應該會自動檢測到通過 USB 連接的 Brother DCP-T310。選擇它並繼續。
    • 按照提示命名您的印表機,添加描述和位置。
    • 在驅動程序選擇步驟,CUPS 應該會推薦已安裝的 Brother DCP-T310 驅動程序。選擇它並完成設置。

完成這些步驟後,您的 Brother DCP-T310 印表機應該就能通過 CUPS 伺服器(運行在 Docker 容器中)正常工作了。您可以嘗試列印測試頁來確認其功能。

2023年1月20日 星期五

Ubiquiti EdgeRouter X (ERX) 路由器 IPv6 配置指南 (適用於 PPPoE 環境)

如何在 Ubiquiti EdgeRouter X (ERX) 上配置 IPv6,主要針對 PPPoE 連接類型。內容涵蓋了 MSS Clamping 的調整、DHCPv6-PD 配置以及一些常見問題的解決方案。

重要提示:

  • 在進行任何配置更改之前,建議您備份當前的路由器配置。
  • 操作前請確保您對 EdgeOS 的基本操作有一定了解。

1. MSS Clamping 配置 (firewall/options/mss-clamp6)

MSS (Maximum Segment Size) Clamping 對於 IPv6 流量的穩定性至關重要,尤其在 PPPoE 環境下。不正確的 MSS 值可能導致部分網站或服務無法正常訪問。

  • 路徑: Config Tree -> firewall -> options -> mss-clamp6
  • 建議值: 1432
    • 計算方式: 標準 PPPoE 環境的 IPv6 MSS 值通常為 1500 (MTU) - 8 (PPPoE Header) - 40 (IPv6 Header) - 20 (TCP Header) = 1432
  • 故障排除: 如果設置為 1432 後仍出現問題 (例如部分網頁無法加載),您可以嘗試將 MSS 值進一步調小,例如 1382。這是因為某些服務提供商或網路環境可能存在更嚴格的限制。

2. DHCPv6-PD (Prefix Delegation) 配置 (內網 IPv6 分配)

DHCPv6-PD 允許路由器從 ISP 獲取一個 IPv6 前綴,並將其分配給內網設備。這對於在多個內網段分配 IPv6 地址特別有用。

  • 路徑: interfaces -> ethernet -> eth0 (或您的 PPPoE 介面) -> pppoe -> 0 (或您的 PPPoE 連接號) -> dhcpv6-pd -> pd -> 0 (第一個前綴委派)
  • 配置詳細:
    • interface (內網介面): 點擊進入此項,為您希望啟用 IPv6 的內網介面進行配置。
      • host-address:
        • 單個內網段: 如果您只有一個內網 IPv6 段 (例如 192.168.1.x),設定為 ::1。這表示該介面將獲得從委派前綴派生出的第一個可用地址。
        • 多個內網段: (如您所提到的 192.168.1.x192.168.2.x) 您需要為每個內網介面配置不同的 prefix-id
      • prefix-id:
        • 如果您只有一個內網段,設定為 :1
        • 如果您有兩個內網段,例如一個 192.168.1.x 對應 eth1,另一個 192.168.2.x 對應 eth2 (或其他 VLAN 介面),您可以將 eth1prefix-id 設為 :1,將 eth2prefix-id 設為 :2。這樣,每個內網段都會獲得一個獨立的 /64 IPv6 前綴。
      • service: 選擇 slaac (Stateless Address Autoconfiguration)。這允許內網設備通過路由通告自動配置 IPv6 地址,而無需 DHCPv6 伺服器。
    • 委派前綴大小調整:
      • 路徑: 在點開 pd/0 後,您可能會看到 /64
      • 修改: 將其修改為 /60。這將請求 ISP 提供一個更大的前綴 (包含 16 個 /64 子網),以便您可以為多個內網介面分配獨立的 /64 地址段而不會報錯。

3. 外網 IPv6 地址配置 (interfaces/ethernet/eth0/pppoe/0/ipv6)

這部分配置確保路由器的 PPPoE 介面能夠獲取到其自身的 IPv6 地址。

  • 路徑: interfaces -> ethernet -> eth0 (或您的 PPPoE 介面) -> pppoe -> 0 (或您的 PPPoE 連接號) -> ipv6
  • 配置:
    • address: 點擊 + 添加。這會讓路由器從 ISP 自動獲取 IPv6 地址。
    • enable: 點擊 + 啟用 IPv6 功能。

4. 完成設置與應用

  • 預覽並應用: 完成上述所有設置後,點擊頁面底部的 Preview (預覽) 查看所有待應用的更改,然後點擊 Apply (應用) 使配置生效。

5. DNS 服務與 IPv6 相關優化

如果 IPv6 DNS 服務不穩定,導致網頁載入緩慢或卡頓,您可以考慮啟用 no-dns 選項。

  • 路徑: interfaces -> ethernet -> eth0 (或您的 PPPoE 介面) -> pppoe -> 0 (或您的 PPPoE 連接號) -> ipv6
  • 選項: 啟用 no-dns 選項。
    • 作用: 這樣路由器就不會向客戶端分發 ISP 提供的 IPv6 DNS 服務器地址,而是依賴其他方式 (例如客戶端使用其自身的 IPv4 DNS 服務器,或您在路由器上配置其他可靠的公共 IPv6 DNS,如 Google DNS 2001:4860:4860::88882001:4860:4860::8844)。

6. 無 DHCPv6-PD 的情況 (IPv6 NDP 解決方案)

如果您的 ISP 沒有提供 DHCPv6-PD,而僅僅通過 IPv6 NDP (Neighbor Discovery Protocol) 分配地址,您可以考慮在 EdgeRouter X 上安裝 ndppd (Neighbor Discovery Protocol Proxy Daemon) 來實現。

  • 背景: 在 OpenWRT 環境中,這通常通過安裝 ndppd 套件來實現,它會將外網 (例如 eth0) 接收到的 NDP 請求轉發到內網 (例如 br-lan)。
  • EdgeRouter X 實現:
    • EdgeRouter X 運行的是 EdgeOS (基於 Debian 的 Vyatta 分支)。
    • 您需要 SSH 登入路由器,然後嘗試安裝 ndppd
    • 安裝命令 (可能需要先更新 apt 源並獲取 root 權限):
      Bash
      sudo apt update
      sudo apt install ndppd
      
    • 配置 ndppd 安裝完成後,您需要手動編輯 ndppd 的配置文件 (通常在 /etc/ndppd.conf),指定要代理的介面 (外網介面和內網介面),並啟動服務。這部分配置會更複雜,需要參考 ndppd 的文檔或相關教程。

注意: 這種情況相對複雜,且 ndppd 並非 EdgeOS 的預設套件。在嘗試此方法之前,請確保您已了解相關風險,並知道如何通過 SSH 恢復路由器。


通過遵循以上步驟,您應該能夠在 Ubiquiti EdgeRouter X 上成功配置 IPv6,享受更快的網路連接並為未來的網路趨勢做好準備。

2020年2月23日 星期日

$ sudo service apache2 restart Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

手贱,想解决ssl 无法访问的问题,修改apache2配置,结果出问题了:
$ sudo service apache2 restart
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
虽然找到了许多网友的解决办法,但是没有一个全套解决办法,只好耐心一个合着试验,
最终解决了。
1、重新安装apache2
$ systemctl restart apache2
$ journal -xe 
$ sudo apt-get purge apache2
$ sudo apt autoremove apache2
$ sudo apt-get purge apache2
$ sudo apt-get purge apache2*
$ sudo apt-get install apache2
$ sudo service apache2 start
2、重点在这里:
重新安装了apache2,网站正常访问了,但是php却无法正常运行,
问题是这个
php7.3没有运行,
所以:sudo  a2enmod php7.3
但是出现如下提示:
Considering dependency mpm_prefork for php7.3:
Considering conflict mpm_event for mpm_prefork:
ERROR: Module mpm_event is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_worker for mpm_prefork:
ERROR: Could not enable dependency mpm_prefork for php7.3, aborting

所以接着:
sudo a2dismod mpm_event
Module mpm_event disabled.
To activate the new configuration, you need to run:
  systemctl restart apache2

OK,解决了

大乐透号码选取器

大乐透号码选取器 (带历史记录) 大乐透号码选取器 前区号码 (5个,01-35) ...