FAQ(Chinese_Traditional) - UjuiUjuMandan/Pcap_DNSProxy GitHub Wiki

本文檔為常見問題的處理方法,當工具無法正常使用時可先參考本文檔尋找解決方法

運行結果分析

  • WinPcap 提示已安裝舊版本無法繼續:

    • 到安裝和卸載程式、運行功能表或 %PROGRAMFILES(x86)%(64位系統)/%PROGRAMFILES%(32位系統) 尋找 WinPcap 的卸載程式
    • 如果找不到卸載程式,則可能需要進入安全模式刪除 WinPcap 的所有檔然後重新安裝:
      • %WINDIR%\system32\Packet.dll
      • %WINDIR%\system32\drivers\npf.sys
      • %WINDIR%\system32\WanPacket.dll
      • %WINDIR%\system32\wpcap.dll
      • %WINDIR%\system32\pthreadVC.dll
  • 安裝或運行服務時出現:

    • Require Administrator Permission - 請以管理員許可權運行
    • The file(s) may be damaged or corrupt! Please download all files again, also you can skip this check. Are you sure you want to continue install service [Y/N]?
      • 意思是壓縮檔的 SHA-1 檢查驗證失敗,意味著程式可能在下載或解壓途中被損壞
      • 確保 bat 批次處理都是最新版本
      • 如果修改或更新過程式,確認程式是沒有損壞的,請輸入 Y 跳過檢查繼續安裝或運行服務
      • 否則請重新下載程式
    • 服務沒有及時回應啟動或控制請求 - 請檢查是否有錯誤報表生成,詳細情況參見下文 Error.log 詳細錯誤報表 一節
  • 正常的運行結果應類似:

    nslookup www.google.com
    服务器: pcap_dnsproxy.localhost.server(視設定檔設置的值而定,參見 ReadMe 文檔 中 設定檔詳細參數說明)
    Address: 127.0.0.1(視所在網路環境而定,本地監聽協定為 IPv6 時為 ::1)

    非權威應答:
        名稱: www.google.com
        Addresses: ……(IP位址或地址清單)

  • 如果出現以下結果,則說明服務沒有運行成功或者設置出錯,請檢查是否有錯誤報表生成,或請移步 ReadMe 文檔安装方法 一節

    nslookup www.google.com
    服务器: UnKnown
    Address: 127.0.0.1(視所在網路環境而定,本地監聽協定為 IPv6 時為 ::1)

    *** UnKnown 找不到 www.google.com: No response from server

  • 如果出現以下結果,則說明服務已經運行成功但遠端 DNS 伺服器沒有回應,請檢查是否有錯誤報表生成

    • 請務必設置一個正確的、有效的、可以使用的境外 DNS 伺服器
    • 出現這種情況可能為網路問題。部分地區 ISP/運營商對 UDP 協定轉發丟包率比較高,可嘗試切換到 TCP 協定模式(參見 ReadMe 文檔設定檔詳細參數說明 一节中 Base - 基本區域 的 Operation Mode 一節) 或者多嘗試請求幾次
    • 也可能是因為長時間運行有錯誤累積造成,專案組正努力解決。可嘗試重啟服務(參見 ReadMe 文檔 中的 重啟服務

    nslookup www.google.com
    伺服器: pcap_dnsproxy.localhost.server(視設定檔設置的值而定,參見 ReadMe 文檔設定檔詳細參數說明
    Address: 127.0.0.1(視所在網路環境而定,本地監聽協定為 IPv6 時為 ::1)

    DNS request timed out.
        timeout was 2 seconds.
    DNS request timed out.
        timeout was 2 seconds.
    DNS request timed out.
        timeout was 2 seconds.
    DNS request timed out.
        timeout was 2 seconds.
    *** 請求 pcap_dnsproxy.localhost.server 超時(視設定檔設置的值而定,參見 ReadMe 文檔設定檔詳細參數說明

    或者:

    nslookup -vc www.google.com
    伺服器: pcap_dnsproxy.localhost.server(視設定檔設置的值而定,參見 ReadMe 文檔設定檔詳細參數說明
    Address: 127.0.0.1(視所在網路環境而定,本地監聽協定為 IPv6 時為 ::1)

    *** 沒有 www.google.com 可以使用的 internal type for both IPv4 and IPv6 Addresses (A+AAAA)記錄


當程式運行時發生錯誤,可能會建置錯誤報告也就是 Error.log 檔,其位於工具服務註冊的目錄內,對解決問題至關重要 錯誤報表的格式為 日期 時間 -> 錯誤類型: 詳細錯誤資訊(in line 行數 of 所在檔, error code is 錯誤代碼)(括弧為可能出現內容)

  • 錯誤代碼為 系統/Winsock/WinPcap API 提供的出錯代碼,詳細情況參見下文 Error.log 詳細錯誤報表
  • 由於程式重啟時會自動刪除之前生成的錯誤報表,所以如果有錯誤報表生成建議先備份並嘗試解決後再重新開機工具服務

Error.log 詳細錯誤報表,錯誤報表一共有7大類型:

  • System Error - 系統錯誤

    • Service start error - 服務啟動失敗:可能未在系統註冊服務,或在系統內註冊的服務路徑不正確
    • Multi bytes to wide chars error - 多位元組字元轉換為寬位元組字元錯誤,遇到此錯誤請與作者聯繫
    • Old Error Log file was deleted - 日誌檔已滿並被刪除
      • 日誌檔最大容量的配置參見 詳細說明文檔設定檔詳細參數說明 中的 Log Maximum Size 參數
    • Old Running Log file was deleted - 運行日誌檔已滿並被刪除
      • 日誌檔最大容量的配置參見 詳細說明文檔設定檔詳細參數說明 中的 Log Maximum Size 參數
    • Read Hosts module Monitor terminated - Hosts 讀取模組已經停止監視,建議立即重新開機服務或程式
    • Read IPFilter module Monitor terminated - IPFilter 讀取模組已經停止監視,建議立即重新開機服務或程式
    • Alternate Server module Monitor terminated - 待命伺服器切換模組已經停止運行,建議立即重新開機服務或程式
    • DNS Cache Timer module Monitor terminated - DNS 緩存模組已經停止運行,建議立即重新開機服務或程式
    • Get Local Address Information module Monitor terminated - 本地位址監控模組已經停止監視,建議立即重新開機服務或程式
    • Domain Test module Monitor terminated - 功能變數名稱測試模組已經停止運行,建議立即重新開機服務或程式
    • ICMP Test module Monitor terminated - ICMP 請求模組已經停止請求,建議立即重新開機服務或程式
    • ICMPv6 Test module Monitor terminated - ICMPv6 請求已經停止請求,建議立即重新開機服務或程式
    • UDP listening module Monitor terminated - UDP 協定監聽模組已經停止監視,建議立即重新開機服務或程式
    • TCP listening module Monitor terminated - TCP 協定監聽模組已經停止監視,建議立即重新開機服務或程式
  • Parameter Error - 讀取設定檔參數錯誤

    • Cannot open any configuration files - 沒有發現任何設定檔:請確認檔是否存在
    • Configuration file size is too large - 設定檔容量過大:請確認設定檔的內容,整個檔的大小不要超過4GB
    • Item length error - 設定檔參數一行資料超過4096位元組/4KB,或該行資料長度不符合要求(可根據檔案名和行數查找):請確認該行的內容是否符合要求
    • Configuration file version error - 設定檔版本錯誤:請確認設定檔是否需要更新。注意,Windows/Linux/Mac 版設定檔互不通用!
    • Configuration file is not the latest version - 設定檔非最新版本:請確認設定檔是否需要更新
    • Data of a line is too short - 該參數過短(可根據檔案名和行數查找):請確認設定檔的內容
    • Data of a line is too long - 該參數過長(可根據檔案名和行數查找):一行資料切勿超過 4096位元組/4KB
    • Log file size error - 設定檔指定的最大日誌檔容量錯誤:可接受範圍為 4KB - 4GB
    • Pcap Capture error - 抓包模組參數錯誤:請確定關閉抓包模組時是否有開啟其它請求功能變數名稱解析的方式
    • IPv6 Listen Address format error - IPv6 本地監聽綁定位址格式錯誤(可根據檔案名和行數查找):請檢查 IPv6 的本地監聽綁定位址
    • IPv6 Listen Port error - IPv6 本地監聽綁定埠錯誤(可根據檔案名和行數查找):請檢查 IPv6 的本地監聽綁定埠
    • IPv4 Listen Address format error - IPv4 本地監聽綁定位址格式錯誤(可根據檔案名和行數查找):請檢查 IPv4 的本地監聽綁定位址
    • IPv4 Listen Port error - IPv4 本地監聽綁定埠錯誤(可根據檔案名和行數查找):請檢查 IPv4 的本地監聽綁定埠
    • DNS server IPv6 Address format error - IPv6 的 DNS 伺服器位址格式錯誤(可根據檔案名和行數查找):請檢查 IPv6 的 DNS 伺服器位址
    • DNS server IPv6 Port error - IPv6 的 DNS 目標伺服器埠錯誤(可根據檔案名和行數查找):請檢查 IPv6 的 DNS 目標伺服器的埠
    • DNS server IPv4 Address format error - IPv4 的 DNS 伺服器位址格式錯誤(可根據檔案名和行數查找):請檢查 IPv4 的 DNS 伺服器位址
    • DNS server IPv4 Port error - IPv4 的 DNS 目標伺服器埠錯誤(可根據檔案名和行數查找):請檢查 IPv4 的 DNS 目標伺服器的埠
    • Localhost server listening Port error - 本地監聽埠錯誤:請檢查本地監聽埠的值,可適用範圍為 1 - 65535
    • IPFilter Level error - IPFilter 過濾級別錯誤:請檢查過濾級別的值,可適用範圍為 1 - 65535
    • DNS Cache error - DNS 緩存配置錯誤:請檢查緩存的參數 DNS Targets error` - DNS 目標伺服器配置錯誤:請檢查 DNS 伺服器的位址
    • Local Main error - 主要境內伺服器請求功能錯誤:請檢查境內伺服器是否可用
    • DNS Records type error - DNS 記錄參數錯誤:請檢查 Accept Type 的值是否符合要求
    • Hop Limit or TTL Fluctuations error - Hop Limit 或 TTL 可接受範圍錯誤:請檢查範圍的值
    • EDNS0 Payload Size must longer than 512 bytes(Old DNS packets minimum supported size) - EDNS0 載荷長度過短:實現DNS協定必須支援長度超過 512 bytes 的資料包
    • EDNS0 Payload Size may be too long - EDNS0 載荷長度可能過長:此值建議不要超過乙太網的 MTU(1512 bytes)
    • EDNS0 Label must trun ON when request DNSSEC - 開啟 DNSSEC 請求時必須開啟 EDNS0 標籤請求功能
    • EDNS0 Label must trun ON when request DNSCurve - 開啟 DNSCurve 協定請求時必須開啟 EDNS0 標籤請求功能
    • Alternate Multi requesting error - 主要備用或多個伺服器下同時請求參數錯誤:請確認所有伺服器的資訊
    • Multi requesting times error - 接收到一個解析請求向同一個遠端伺服器發送多次解析請求參數錯誤 :一個解析請求的多次解析請求次數不能超過16次,也就是設定檔不能填大於15的值
    • DNSCurve Targets error - DNSCurve 協定使用的 DNS 目標伺服器位址錯誤:請檢查 DNSCurve 協定使用DNS伺服器的位址
    • DNSCurve encryption options error - DNSCurve 協定加密選項配置錯誤:開啟加密選項和只使用加密模式選項衝突
    • DNSCurve Encryption Only mode error - DNSCurve 協定只使用加密模式配置錯誤:只使用加密模式必須提供伺服器的魔數和指紋
    • DNSCurve empty Provider Name error - DNSCurve 協定伺服器提供者錯誤:不存在魔數或指紋時必須提供伺服器的提供者資訊以自動獲取連接參數
    • DNSCurve empty Public Key error - DNSCurve 協定伺服器提供者錯誤:不存在魔數或指紋時必須提供伺服器的公開金鑰以自動獲取連接參數
    • EDNS0 Label must trun ON when request DNSCurve - 使用 DNSCurve 協定時必須開啟 EDNS0 標籤請求功能
    • Compression Pointer Mutation must trun OFF when request EDNS0 Label - 使用 Compression Pointer Mutation 時不能開啟 EDNS0 標籤請求功能,兩者並不相容
    • DNSCurve Payload Size must longer than 512 bytes(Old DNS packets minimum supported size) - DNSCurve 協定載荷長度過短:實現 DNS 協定必須支援長度超過 512 bytes 的資料包
    • DNSCurve Payload Size may be too long - DNSCurve 協定載荷長度可能過長:此值建議不要超過乙太網的 MTU(1512 bytes)
  • IPFilter Error - 讀取 IPFilter 檔錯誤

    • IPFilter file size is too large - IPFilter 檔容量過大:請確認 IPFilter 檔的內容,整個檔的大小不要超過 4GB
    • Read file(s) error - 檔跳轉讀取錯誤:請與開發者聯繫
    • Data of a line is too long - 該 IPFilter 條目過長(可根據檔案名和行數查找):一行資料切勿超過 4096位元組/4KB
    • Item format error - IPFilter 條目格式錯誤(可根據報告的行數查找):請檢查該條目的格式
    • Regular expression pattern error - 錯誤的正則運算式(可根據報告的行數查找):請檢查正則運算式的正確
    • IPv6 Address format error - IPFilter 的 IPv6 位址格式錯誤(可根據報告的行數查找):請檢查 IPFilter 條目的位址
    • IPv4 Address format error - IPFilter 的 IPv4 位址格式錯誤(可根據報告的行數查找):請檢查 IPFilter 條目的位址
    • IPv6 Addresses range error - IPFilter 的 IPv6 位址範圍錯誤(可根據報告的行數查找):請檢查 IPFilter 條目的位址
    • IPv4 Addresses range error - IPFilter 的 IPv6 位址範圍錯誤(可根據報告的行數查找):請檢查 IPFilter 條目的位址
    • Repeating items error, this item is not available - 存在重複的 IPFilter 條目(可根據報告的行數查找):本條目將不啟用的提示
    • IPv4 Prefix error - IPv4 網路尾碼長度錯誤(可根據報告的行數查找):IPv4 網路尾碼的長度介乎與 1-32
    • IPv6 Prefix error - IPv6 網路尾碼長度錯誤(可根據報告的行數查找):IPv6 網路尾碼的長度介乎與 1-128
    • Level error - IPFilter 過濾級別錯誤(可根據報告的行數查找):過濾級別介乎與 0 - 0xFFFF(65535)
  • Hosts Error - 讀取 Hosts 檔錯誤

    • Hosts file size is too large - Hosts 檔容量過大:請確認Hosts檔的內容,整個檔的大小不要超過4GB
    • Read file(s) error - 檔跳轉讀取錯誤:請與開發者聯繫
    • Data of a line is too long - 該 Hosts 條目過長(可根據檔案名和行數查找):一行資料切勿超過4096位元組/4KB
    • Item format error - Hosts 條目格式錯誤(可根據報告的行數查找):請檢查該條目的格式
    • Data is too long when EDNS0 is available - 開啟EDNS0標籤的情況下該 Hosts 條目過長:請檢查 Hosts 的地址清單是否過長
    • Default TTL redefinition - 預設存留時間重定義(可根據報告的行數查找):以第一個出現的預設存留時間為准
    • Regular expression pattern error - 錯誤的正則運算式(可根據報告的行數查找):請檢查正則運算式的正確性
    • Repeating items error, the item is not available - 存在重複的 Hosts 條目(可根據報告的行數查找):以第一個出現的 Hosts 條目為准
    • IPv6 Address format error - Hosts 的 IPv6 位址格式錯誤(可根據報告的行數查找):請檢查 Hosts 條目的位址
    • IPv4 Address format error - Hosts 的 IPv4 位址格式錯誤(可根據報告的行數查找):請檢查 Hosts 條目的位址
    • Too many Hosts IP addresses - Hosts 條目的平行位址過多
  • Winsock Error - Windows Socket 錯誤

    • Winsock initialization error - Winsock 初始化失敗:請確認使用的作業系統平臺是否受支援
    • Windows Firewall Test error - Windows 防火牆測試失敗:請確認是否為管理員身份運行批次處理
    • UDP Monitor socket initialization error - UDP 協定本地通訊端初始化失敗:原因參見錯誤代碼
    • Bind UDP Monitor socket error - UDP 協定本地通訊端綁定失敗:本地可能已經存在 DNS 伺服器或者多重運行了本工具,具體原因參見錯誤代碼
    • TCP Monitor socket initialization error - TCP 協定本地通訊端初始化失敗:原因參見錯誤代碼
    • Bind TCP Monitor socket error - TCP 協定本地通訊端綁定失敗:本地可能已經存在 DNS 伺服器或者多重運行了本工具,具體原因參見錯誤代碼
    • TCP Monitor socket listening initialization error - TCP 協定本地通訊端監聽失敗:原因參見錯誤代碼
    • Get localhost names error - 獲取本地電腦名稱稱失敗:原因參見錯誤代碼
    • Get localhost addresses error - 獲取本地電腦位址失敗:沒有任何生效的網路介面卡,可能是硬體或者驅動程式的問題
    • Local IPv4 Address format error - 本地電腦 IPv4 位址格式錯誤:原因參見錯誤代碼
    • Local IPv6 Address format error - 本地電腦 IPv6 位址格式錯誤:原因參見錯誤代碼
    • UDP request initialization error - UDP 協定請求通訊端初始化失敗:原因參見錯誤代碼
    • Complete UDP request initialization error - UDP 協定請求通訊端初始化失敗:原因參見錯誤代碼
    • UDP request error - UDP 協定要求傳送失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • Complete UDP request error - UDP 協定要求傳送失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • TCP request initialization error - TCP 協定請求通訊端初始化失敗:原因參見錯誤代碼
    • DNSCurve TCP sockets initialization error - DNSCurve 協定 TCP 協定通訊端初始化失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • DNSCurve TCP request error - DNSCurve 協定 TCP 要求傳送失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • DNSCurve UDP sockets initialization error - DNSCurve 協定 UDP 協定通訊端初始化失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • DNSCurve UDP request error - DNSCurve 協定 UDP 協定要求傳送失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • DNSCurve socket(s) initialization error - DNSCurve 協定請求通訊端初始化失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • DNSCurve Local Signature request initialization error - DNSCurve 協定本地請求通訊端初始化失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • DNSCurve Local Signature request error - DNSCurve 協定本地要求傳送失敗:可能為網路錯誤,具體原因可參見錯誤代碼
    • Set TCP socket non-blocking mode error - 設置 TCP 協定通訊端非阻塞模式錯誤:可能為網路錯誤,具體原因可參見錯誤代碼
    • Set UDP socket non-blocking mode error - 設置 UDP 協定通訊端非阻塞模式錯誤:可能為網路錯誤,具體原因可參見錯誤代碼
    • Set UDP socket timeout error - 設置 UDP 協定通訊端超時時間錯誤:具體原因可參見錯誤代碼
    • Set Complete UDP socket timeout error - 設置 UDP 協定通訊端超時時間錯誤:具體原因可參見錯誤代碼
    • Set UDP socket SIO_UDP_CONNRESET error - 設置 UDP 協定通訊端遮罩 ICMP Port Unreachable 資訊錯誤:具體原因可參見錯誤代碼
    • Set TCP socket timeout error - 設置 TCP 協定通訊端超時時間錯誤:具體原因可參見錯誤代碼
    • Set ICMP socket timeout error - 設置 ICMP 協定通訊端超時時間錯誤:具體原因可參見錯誤代碼
    • ICMP Echo(Ping) request error - ICMP/Ping 協定請求錯誤:可能為網路錯誤,具體原因可參見錯誤代碼
    • Set ICMPv6 socket timeout error - 設置 ICMPv6 協定通訊端超時時間錯誤:具體原因可參見錯誤代碼
    • ICMPv6 Echo(Ping) request error - ICMPv6/Ping 協定請求錯誤:可能為網路錯誤,具體原因可參見錯誤代碼
    • `Winsock 錯誤代碼具體含義可移步 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx
  • WinPcap Error - WinPcap 錯誤

    • Insufficient permissions or not any available network devices - 沒有任何可用的網路介面卡:請檢查硬體設備和驅動程式是否安裝正確,也可能是許可權不足
    • XXX is not a Ethernet device - 發現非 Ethernet 類型的網路介面卡:這不是錯誤,但可以說明系統記憶體在非 Ethernet 類型的網路介面卡
    • An error occurred in XXX - 名稱為 XXX 的網路介面卡抓取資料包錯誤
    • EOF was reached reading from an offline capture in XXX - 名稱為 XXX 的網路介面卡已經離線或不可用
    • `本類型錯誤會直接將 WinPcap 的錯誤資訊直接列印至錯誤報表
    • `WinPcap錯誤資訊的具體含義可移步 http://www.winpcap.org/docs/docs_40_2/html/group__wpcapfunc.html
  • DNSCurve Error - DNSCurve 協定錯誤

    • Libsodium initialization error - Libsodium 庫初始化錯誤:請與開發者聯繫
    • Client keypair(public key and secret key) error - 自訂用戶端金鑰組錯誤:請檢查金鑰組的正確性
    • TCP get signature data request error - TCP 協定自動獲取伺服器連接參數資訊錯誤:如果此錯誤持續並導致 DNSCurve 協定無法使用,請將伺服器的魔數和指紋直接寫入設定檔中
    • UDP get signature data request error - UDP 協定自動獲取伺服器連接參數資訊錯誤:如果此錯誤持續並導致 DNSCurve 協定無法使用,請將伺服器的魔數和指紋直接寫入設定檔中
    • Ramdom module close error - 亂數產生模組關閉錯誤:請與開發者聯繫
    • IPv6 Main Server Fingerprint signature validation error - IPv6 主要伺服器憑證驗證錯誤:請檢查該伺服器是否可用
    • IPv6 Alternate Server Fingerprint signature validation error - IPv6 待命伺服器證書驗證錯誤:請檢查該伺服器是否可用
    • IPv4 Main Server Fingerprint signature validation error - IPv4 主要伺服器憑證驗證錯誤:請檢查該伺服器是否可用
    • IPv4 Alternate Server Fingerprint signature validation error - IPv4 待命伺服器證書驗證錯誤:請檢查該伺服器是否可用
⚠️ **GitHub.com Fallback** ⚠️