Android上的一些VPN(比如DroidVPN)使用tun內核模塊實現流量轉發進而實現VPN,優點是比系統的VPN省電不少,缺點是必須要以root權限運行。

VPN默認是全局代理,當我們只需要對某幾個ip做轉發或者對幾個ip不做轉發時就需要修改內核路由表。

白名單

即只對某些ip做轉發

以下是一個示例設置對8.0.0.0~8.255.255.255的ip走vpn通道(開啟vpn後運行):

關閉VPN後運行:

 

黑名單

即對這些ip不做轉發

黑名單和chnroutes實現思路基本類似,示例添加了一個規則,使1.0.1.0~1.0.1.255的ip不走vpn(隨便什麼時候運行):

不需要這些規則時,運行(也可不運行,重啟消失):

 

需要注意的是,白名單規則在關閉vpn後需運行相應的route del以刪除轉發規則,否則將無法連接

黑名單規則不刪除也沒關係

以上所有規則重啟後自動丟失