• 57

MINI PC 魔米M1 android Quad Core 電視棒(開箱)

fedora wrote:
我是用 Linux 當路由器,有架設 Transpent Proxy,可以攔截過濾 HTTP 封包,凡是 HTTP 協定出去的封包一律強制和上層 proxy 要資料,不論什麼軟體只要走 HTTP 協定的,就會去 proxy.hinet.net 要資料,不是 port 80 的也 OK。不過這方法只適合用 Linux 電腦當路由器的人。

請問一下這怎麼做到的...
看起來這樣應該可以利用tomato掛squid proxy...
然後指定網址讓某些特定網址由A proxy出去...另外一些從B proxy出去...

這樣的話很多擋IP的網站都可以解決...
請教各位我剛買了魔米m1,要下載什麼app才可以讓我的手機畫面同步在電視上,手機是蝴蝶機,謝謝

froce wrote:
請問一下這怎麼做到的...
看起來這樣應該可以利用tomato掛squid proxy...
然後指定網址讓某些特定網址由A proxy出去...另外一些從B proxy出去......(恕刪)



我不清楚 tomato 那類軟路由,squid 可以設定到什麼程度

我用的是標準 Linux(CentOS),完整版的 squid,才能這樣用的。

就是直接拿台 PC 電腦,裝 Linux,去當路由器的。

先說明這需要一些 Linux 底子功夫,有些技術含量。有興趣可往下看:

**************************************************

squid.conf 是 squid 的主要設定檔

有一個功能叫做:上層 Proxy 代理伺服器

若想了解原理,具體可以看 鳥哥的私房菜 (Linux 教學網站),squid 的部份。


1.首先要設定一個「上層(父層) Proxy 代理伺服器」

cache_peer proxy.hinet.net parent 80 0 no-query no-digest no-netdb-exchange name=hinet

這一行的意思:指定上層 proxy 為 proxy.hinet.net,別名代號=hinet


2.如果想要所有 HTTP 連線,都經過上層 proxy 代理

# 先 acl 別名一個叫 HTTP 的"封包集合",凡是通訊協定屬於 HTTP 協定的封包,皆歸類為 別名HTTP 的"封包集合"。

acl HTTP proto HTTP

# 然後指定凡屬於 別名 HTTP "封包集合"的,都使用 別名 hinet 的上層代理。

cache_peer_access hinet allow HTTP


但是這樣用,會有一些小問題,透過 proxy 代理出去,外面的伺服器偵測到的來訪者 IP 有可能會是那台 proxy 主機,而 proxy.hinet.net 是數萬人在用的東西,所以有些免空、跳秒數的廣告...等等的網頁,就不會動。因為被對方伺服器阻擋了,太多人用相同的 IP 去連接。


3.實際上,我會採用這樣的方式,才不會影響整個家裡用的網路

Android 平板的 WIFI 也好,有線網路也好,都設固定 IP(Static IP)。比如 192.168.0.200。

#指定來自(src)192.168.0.200 的封包(就是來自那台平板的封包),都歸類到 別名 Android1 的 "封包集合"。

acl Android1 src 192.168.0.200

# 凡 別名 Android1 的 "封包集合",都透過上層代理 hinet

cache_peer_access hinet allow Android1


如此一來,就只有平板的封包,會去用上層代理,而 PC 桌機電腦之類的,不受影響。



squid.conf 區段設定參考(有詳細註解):

################################
# 上層 Proxy 代理伺服器 #
################################
#
# 若不使用上層代理,以下項目請註解。

# 上層代理列表
# cache_peer [上層proxy主機名] [proxy角色] [proxy port] [icp port] [額外參數]
# 上層代理角色:parent(父層)
# icp port 若未知,請設 0,並加參數 no-query
#
# 額外參數:
#
# proxy-only:向上層 proxy 要到的資料不會快取到本地的 proxy 伺服器內,降低本地 proxy 負擔
# wieght=n: 權重的意思,因為我們可以指定多部上層 Proxy 主機,哪一部最重要?
# 就可以利用這個 weight 來設定,n 越大表示這部 Proxy 越重要
# no-query: 如果向上層 Proxy 要求資料時,可以不需要發送 icp 封包,以降低主機的負擔
# no-digest: 表示不向附近主機要求建立 digest 紀錄表格
# no-netdb-exchange:表示不向附近的 Proxy 主機送出 imcp 的封包要求
#
# name=? : 給cache_peer 一個別名

cache_peer proxy.hinet.net parent 80 0 no-query no-digest no-netdb-exchange name=hinet


# 對外連線網址屬於哪個國家網域,才使用上層代理
# cache_peer_domain [上層proxy主機名] [要求的領域名]
# 不批配全球頂級域名,例如:.com
# 這個是 squid 早期形式,僅能匹配國家網域,不支援完整主機名稱和ip

cache_peer_domain hinet .cn
cache_peer_domain hinet .hk
cache_peer_domain hinet .jp


# acl (訪問控制)指定細節的「別名」定義
# 可以指定:主機名稱、ip、網段、主機名、某種協定...等等,共有25種(詳見說明書)
# 例:acl [別名] proto HTTP/FTP
# acl [別名] src 192.168.0.0/24
# acl [別名] dst wwww.ex.com 或 11.22.33.44
#
# acl 是只是定義,尚需搭配 cache_peeraccess 放行
# cache_peer_access [上層squid主機] allow [別名] (deny [別名])
# 最後面的 deny 是複合條件,可有可無。

acl Android1 src 192.168.0.199
acl Android2 src 192.168.0.200
acl Android3 src 192.168.0.198

cache_peer_access hinet allow Android1
cache_peer_access hinet allow Android2
cache_peer_access hinet allow Android3

# 所有 HTTP 連線,都使用上層代理
#acl HTTP proto HTTP
#cache_peer_access hinet allow HTTP



大致上用法就是:

1) 要先 acl (指定)一個 "封包集合" 的別名

2) 然後,設定那個 "封包集合" 要通過上層代理。


acl 支援 25種定義,包括:IP、網段、通訊協定.....等等的

詳細具體用法,可參考:
Squid中文权威指南


************************************************

另外關鍵的一點是:
你的閘道路由器,上面的 squid,"必需"是 Transpent Proxy(透明代理)的。

所謂的 Transpent Proxy (簡稱 TP),是指:Client 端不用任何設定,只要封包過閘道,就會被閘道防火牆過濾檢測出來,轉送 squid 處理。

比方說:
如果是 TP 的,那平板的網路設定,就不用去設定什麼 proxy。

TP 會在閘道路由器抓封包,過濾,轉送 squid。客戶端不用任何設定,也不會有感覺。

尤其 Android 系統即便設了 proxy,有些軟體也不會理會。

所以才必須是 TP 的,若是一般的 proxy,那 Android 的 WIFI 上網設定,其實直接設 proxy.hinet.net 就好了,問題出在:有些軟體不會理會。



TP 的設定,分兩部分
一部分是:squid.conf
另一部分是:閘道防火牆


squid.conf 的部份僅需一行
-------------------
http_port 3128 transparent
-------------------


閘道防火牆的部份,比較複雜,我是用 sh 腳本處理

關鍵是這一行:

iptables -t nat -A PREROUTING -i $LAN_IF -p tcp -d ! $LAN_IP --dport $port -j REDIRECT --to-port $TP_PORT

$LAN_IF=閘道主機對內網卡的介面編號,比如 eth1

$LAN_IP=閘道主機對內網卡的 IP。用來防止TP迴圈,造成閘道主機的網站無法進入。

$port=一般是 80。

$TP_PORT=一般是 3128。

整句 iptables 指令的意思:
從對內網卡介面進入的封包,目標不是對內網卡的IP(防止TP迴圈),且目標埠是 80,通通重新導向到本機 3128 埠(轉送給 squid 處理)。


不過這樣只是「目標埠」為 80 的封包。

有些軟體雖是走 http 協定,但目標埠並不是 80。

嚴謹一點的定義,可以這樣:(非必要,僅提供參考)

iptables -t nat -A PREROUTING -i $LAN_IF -p tcp -d ! $LAN_IP -s 192.168.0.200 -j REDIRECT --to-port $TP_PORT

加一個 -s 192.168.0.200
凡來自 192.168.0.200 的封包,都轉送給 port 3128 處理(轉送給 squid 處理)


*********************************************

大致上就是這樣,有點複雜

需要路由器可以運行 TP,有完整版的 squid。

所以說:要用 Linux 做閘道路由器的人才適用。


軟體路由器,不清楚 squid 是 陽春版 還是 完整版 的,若是完整版的,就有機會。

不過防火牆的部分,過濾抓封包,送 squid 處理(TP 功能),會比較難處理。

這部份需要軟體路由器,可以直接下指令,去下 iptables 指令。(假如軟路由是基於 Linux 核心系統的話。基於 BSD 核心系統的,則要下 BSD 的防火牆指令)

用 web 介面設防火牆規則,無法設。因為會用到特殊鏈,nat 鏈 和 PREROUTING 表,web 介面上沒得選。
fedora wrote:
我不清楚 tomato 那類軟路由,squid 可以設定到什麼程度

我用的是標準 Linux(CentOS),完整版的 squid,才能這樣用的。

tomato的可能需要重新編譯...我確定MAC地址的ACL type沒有...
之前設定手機的proxy...沒辦法綁定MAC...Orz

以後可能會去找個像樹莓派的開發版來做...

謝謝...這篇很有用...
現在沒屋頂的好像都買不到了,除了去掏寶哪裡還可以買呢 ??

謝謝 !!
av1772 发表于 2013-8-18 11:59
請問 你會何時會發新韌體呢

下周会发布定制版本的OS后面固件更新会加速的,定制UI用了比较长的时间,因为要同时兼顾实用鼠标操作和,遥控器操作的用户
下禮拜中擁有了

自由阿棟 wrote:
看個影片,一直緩衝,感覺是網路不夠力,請教能外接無線網卡嗎???
(恕刪)


試過了外接網路卡~ 答案是"不行"

p0937795182 wrote:
試過了外接網路卡~ ...(恕刪)


甘溫蛤....

wawabbs wrote:
現在沒屋頂的好像都買...(恕刪)


據悉原廠於8月8日推出v2版本,應是賣家們知道此訊息,清空庫存等新貨到吧.

v2將WiFi晶片由RTL8188換成AP6210.
43A wrote:
據悉原廠於8月8日推出v2版本,應是賣家們知道此訊息,清空庫存等新貨到吧.

v2將WiFi晶片由RTL8188換成AP6210.

應該不是...應該是NCC的關係...

因為之前我買的那個賣家被停權了...
我買的時候就看到他就在抱怨這件事...

不知道換成AP6210有沒有比較好...
不過v1的wifi其實速度也蠻ok的...

順便報個bug...
plex在1080P軔體下會不能使用...無法播放...
因為rk3188的新硬體加速的關係...
  • 57
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 57)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?