中華電信上網時間管理研究與繞過

English version is availble here: https://blog.nicewhite.xyz/hinet_browsing_timelimit_research/
這啥?
這是一篇研究 中華電信上網時間管理 的文章
白話文就是破解它啦
當然僅供研究用途:P。
2024/9/10寫的,應該不會再更新。
等等,怎麼繞的?
yoni@yoni-A-Power-T200:~/icm2$ ping 1.1.1.1 -I enp3s0
PING 1.1.1.1 (1.1.1.1) from 192.168.1.106 enp3s0: 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=58 time=11.6 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=58 time=12.1 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=58 time=11.4 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=58 time=11.5 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=58 time=11.9 ms
^C
--- 1.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 11.374/11.708/12.115/0.275 ms
反正它不擋ICMP requests,我們用個tunnel繞就好。
須要的設備
- 一個有獨立IP的Linux Server,建議用Ubuntu 或 Debian. 我這次是用 Lazco Cloud 的VPS .
- Linux電腦當客戶端
Server 設定
- 在電腦和伺服器上從 SourceForge 下載 hans 並編譯
sudo apt-get install git build-essential screen
tar -xzf hans-version.tar.gz
cd hans-version
make
- 叫kernel不要回icmp echo request
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
開IP轉發
echo 1 | dd of=/proc/sys/net/ipv4/ip_forward
開tunnel 伺服器
./hans -s 10.1.2.0 -p <set a password>
然後tunnel 伺服器應該就上線了
客戶端設定
./hans -c server_address -p password
從tunnel嘗試連到google
curl google.com --interface tun0
將使用者的所有流量(當然不包括 root)通過tunnel,然後測速。
sudo ip route flush table 502
sudo ip route add table 502 default dev tun0
sudo ip rule add uidrange $UID-$UID table 502
sleep 3
speedtest
現在,使用者的所有流量都應該會通過tunnel。
Q&A:
有些網站能正常運作,但有些仍然顯示 ERR_CONNECTION_RESET。
解決方法:在你的客戶端上停用 IPv6。
速度很慢
我原本的速度是 60M/20M,但繞過後,只有 0.9M/20M。
所以我猜測可能是因為中華電信的路由器,沒辦法處理大量ICMP 流量,或是你的伺服器太遠ping太高了。
你可以嘗試使用其他tunnel software(例如:esrrhs/pingtunnel)。或者利用父母限制你上網的時間來學習networking