繼先前的問題,這回老闆又給了如標題所述的新"挑戰"。
由於 Line 除了自有的伺服器外,也租用了不少 AmazonAWS、Google LLC。
而WhatsApp更是在元宇宙"大合併"之後,大量共用伺服器,使得原先一些封鎖對策失效。
以目前使用的 Mikrotik RouterOS 7.3.1 防火牆功能設置如下:
依序為
▲
Firewall -> Layer7 Protocols
Name:
WhatsApp
Regexp:
^.+(.whats.com|.whatsapp.com|.whatsapp.net|wa.me|.whats.).*$
▲Accept WhatsApp L7
Firewall -> Filter Rules -> General
Chain:forward
Src.Address:192.168.1.0/24 <-內部網段
Firewall -> Filter Rules -> Advanced
Layer7 Protocol:WhatsApp
Firewall -> Filter Rules -> Action
Action:accept
▲Collect Facebook
Firewall -> Filter Rules -> General
Chain:forward
Src.Address:192.168.1.0/24
Protocol:tcp
Dst. Port:80,443
Firewall -> Filter Rules -> Advanced
TLS Host:facebook
Firewall -> Filter Rules -> Action
Action:add dst to address list
Address List:Facebook
Timeout: 30d 00:00:00
▲Block Facebook
Firewall -> Filter Rules -> General
Chain:forward
Src.Address:192.168.1.0/24
Dst. Address List:Facebook
Firewall -> Filter Rules -> Action
Action:drop
▲ 以下Instagram、Tiktok、Twitter、Youtube 比照上述Collect Facebook、Block Facebook設定處理
▲ 最後一條
Firewall -> Filter Rules -> General
Chain:forward
Src.Address:192.168.1.0/24
Dst.Address: ! 192.168.1.0/24 <-非內部網段
Protocol:tcp
Dst. Port:80,443
Firewall -> Filter Rules -> Action
Action:drop
然後 Tiktok、Twitter 的確封鎖了,但 Facebook、Instagram、WhatsApp、Youtube 會出現 - 當 WhatsApp 能用,Instagram 也能用,或者 WhatsApp 能用,Youtube 也能用,甚至能正常連上部份位於 AmazonAWS、Google LLC 的各網站。
有時 Facebook 或位於 AmazonAWS、Google LLC 的各網站不能用,相對的 WhatsApp 也無法正常使用,例如 WhatsApp 文字可用,但語音或視訊功能可連接卻無法使用.....
總之,就沒辦法在 WhatsApp 功能皆正常使用下,而完全禁用 Facebook、Instagram、Youtube 。
以上請教網上各位高手是否有妙招可解?先謝了。
1.LMHOST,把不要的都加到 127.0.0.1
2.自建 rootDNS
FYI
http://www.ublink.org/index.php/news/news-choice-s/13-nusoft/22-dns-facebook
http://www.ublink.org/index.php/news/148-mis-teamviewer8-0
要有效管理網路訪問,請探索使用強大的家長控制軟體或網路設定來限制 Facebook、Instagram、TikTok、Twitter 和 YouTube,同時允許 Line 和 WhatsApp。使用允許根據您的偏好自訂網站存取權的工具。此外,對於「Twitter 下載」等特定需求,請考慮過濾或修改單一應用程式或搜尋的存取權限,以有效地與您的目標保持一致。
根據你的描述,當前的問題核心在於 WhatsApp 和其他平台(如 Facebook、Instagram、YouTube、Tiktok)共享大量伺服器資源(例如 Amazon AWS 和 Google Cloud)。這導致以網域或 IP 為基礎的封鎖策略難以精準區分不同的服務,而影響了正常的網路應用。
以下是一些可能的解決方案或改進建議:
regexp
^(https?://)?(www.)?(whatsapp.com|whatsapp.net|wa.me|.whats.).*$
但需要注意的是,這種方式的效果仍然有限,因為如果伺服器 IP 與其他應用共用,這無法完全解決問題。
你可以新增一條 Address List 規則,並將 WhatsApp 的特定 IP 範圍加進來,例如:
css
/ip firewall address-list
add address=91.108.0.0/24 list=WhatsApp
add address=149.154.160.0/20 list=WhatsApp
然後更新防火牆規則:
css
/ip firewall filter
add chain=forward src-address=192.168.1.0/24 dst-address-list=WhatsApp action=accept
區分不同應用的伺服器 IP:
使用類似方法建立 Facebook、Instagram、YouTube 的 IP 列表,並在規則中明確封鎖它們。
檢查流量是否有特定的 SNI(Server Name Indication)。
分析 UDP/TCP 連接模式(例如 WhatsApp 通話通常使用 UDP)。
根據分析結果,調整規則,如針對特定的 UDP 流量進行放行。
shell
/ip firewall filter
add chain=forward protocol=udp port=3478-3497,50000-65535 action=accept
5. 使用 DPI(Deep Packet Inspection)
若你的 Mikrotik 路由器或網路環境支持 DPI,可以使用更高階的流量檢測工具,如 Snort 或 OpenDPI,來精確區分應用流量。
部署一個 WhatsApp 專用的 VPN 出口。
在 Mikrotik 上為該 VPN 設置 routing mark,將 WhatsApp 的流量單獨路由。
7. 持續更新 IP 與域名資料
伺服器的 IP 地址經常變動,建議使用自動化腳本定期更新 Address List。例如:
使用第三方 API 提取最新的 WhatsApp/Facebook IP 列表。
將其導入 Mikrotik。
範例完整配置
以下是基於上述建議的改進配置範例:
IP 地址列表
shell
/ip firewall address-list
add address=91.108.0.0/24 list=WhatsApp
add address=149.154.160.0/20 list=WhatsApp
防火牆規則
shell
/ip firewall filter
add chain=forward src-address=192.168.1.0/24 dst-address-list=WhatsApp action=accept
add chain=forward src-address=192.168.1.0/24 dst-address-list=Facebook action=drop
add chain=forward src-address=192.168.1.0/24 dst-address=!192.168.1.0/24 protocol=tcp dst-port=80,443 action=drop
這些解法可能需要結合使用才能達到最佳效果。如果有其他進一步的問題,歡迎補充詳細資訊!