Android IP路由策略和防火墙

Android IP路由策略和防火墙

Platform: RK3368

OS: Android 6.0

Kernel: 3.10.0


ip route, ip rule, iptables简介

ip route

ip route 是用于配置路由器静态路由的命令,在Linux系统中,它是iproute2工具套件的一部分,用于操作路由表。ip route命令的功能非常强大,可以显示、添加、删除、修改路由,以及清除整个路由表或路由缓存。使用ip route时,可以对多达255个路由表中的任何一个进行操作,而route命令则主要在主路由表(表254)上运行。

主要功能

  • 显示路由:通过ip route show命令可以查看当前的路由表信息。
  • 添加路由:使用ip route add命令可以添加新的路由条目。
  • 删除路由:通过ip route del命令可以删除路由表中的特定路由。
  • 修改路由:虽然ip route命令本身没有直接的“修改”选项,但可以通过删除后重新添加的方式来实现路由的修改。

应用场景

ip route命令在网络配置和管理中非常有用,特别是在需要手动设置路由规则的场景下,如跨网段通信、配置默认网关等。

ip rule

ip rule 命令用于设置路由策略数据库中的规则,以实现基于策略的路由(Policy Routing)。它允许网络管理员根据数据包的源地址、目标地址、服务类型等条件来设置路由规则,使得数据包可以按照不同的规则进行转发。

主要功能

  • 添加规则:使用ip rule add命令可以添加新的路由规则。
  • 删除规则:通过ip rule del命令可以删除路由策略数据库中的特定规则。
  • 查看规则ip rule show命令用于显示当前的路由策略规则。

应用场景

ip rule命令在需要实现复杂路由策略的场景下非常有用,如多出口网络、基于应用或用户身份的路由选择等。

iptables

iptables 是Linux下的防火墙软件,用于实现网络访问控制。它工作在L2、L3、L4层,可以对经过的数据包进行检测、转发、丢弃、修改、流控等操作。

主要功能

  • 包过滤:iptables可以根据规则对数据包进行过滤,允许或拒绝特定的数据包通过。
  • 连接跟踪:iptables可以跟踪网络连接的状态,以便对后续的数据包进行更精细的控制。
  • 网络地址转换(NAT):iptables可以实现源地址转换(SNAT)和目的地址转换(DNAT),用于隐藏内部网络地址或实现负载均衡等。
  • 重整包头:iptables可以修改数据包的头部信息,如TTL值、TOS字段等。

表与链

iptables定义了四种表和五种链,以实现对数据包流转的精细控制。四种表包括raw、mangle、nat和filter,它们按照优先级从高到低排列。五种链包括PREROUTING、INPUT、FORWARD、OUTPUT和POSTROUTING,分别对应数据包进入和离开系统的不同阶段。

应用场景

iptables在网络安全和管理中扮演着重要角色,可以用于构建防火墙、实现NAT、控制网络流量等。通过合理配置iptables规则,可以有效地保护网络安全,提高网络性能。

Android路由策略

Android路由策略优先级

代码位置:

system/netd/server/RouteController.cpp

较小的值表示更高的优先级

优先级编号路由规则名称描述
10000RULE_PRIORITY_VPN_OVERRIDE_SYSTEMVPN覆盖系统路由的优先级
10500RULE_PRIORITY_VPN_OVERRIDE_OIFVPN覆盖特定输出接口的路由优先级
11000RULE_PRIORITY_VPN_OUTPUT_TO_LOCALVPN输出到本地的路由优先级
12000RULE_PRIORITY_SECURE_VPN安全VPN路由的优先级
13000RULE_PRIORITY_EXPLICIT_NETWORK显式网络路由的优先级
14000RULE_PRIORITY_OUTPUT_INTERFACE输出接口路由的优先级
15000RULE_PRIORITY_LEGACY_SYSTEM遗留系统路由的优先级
16000RULE_PRIORITY_LEGACY_NETWORK遗留网络路由的优先级
17000RULE_PRIORITY_LOCAL_NETWORK本地网络路由的优先级
18000RULE_PRIORITY_TETHERING网络共享(如热点)路由的优先级
19000RULE_PRIORITY_IMPLICIT_NETWORK隐式网络路由的优先级
20000RULE_PRIORITY_BYPASSABLE_VPN可绕过VPN的路由优先级
21000RULE_PRIORITY_VPN_FALLTHROUGHVPN穿透(未匹配VPN规则时使用的)路由的优先级
22000RULE_PRIORITY_DEFAULT_NETWORK默认网络路由的优先级
23000RULE_PRIORITY_DIRECTLY_CONNECTED直接连接网络的路由优先级
32000RULE_PRIORITY_UNREACHABLE不可达路由的优先级(通常用于黑洞路由)
命令查看当前路由策略
# ip rule list
0:	from all lookup local 
10000:	from all fwmark 0xc0000/0xd0000 lookup legacy_system 
10500:	from all oif eth0 uidrange 0-0 lookup eth0 
13000:	from all fwmark 0x10063/0x1ffff lookup local_network 
13000:	from all fwmark 0x10064/0x1ffff lookup eth0 
14000:	from all oif eth0 lookup eth0 
15000:	from all fwmark 0x0/0x10000 lookup legacy_system 
16000:	from all fwmark 0x0/0x10000 lookup legacy_network 
17000:	from all fwmark 0x0/0x10000 lookup local_network 
19000:	from all fwmark 0x64/0x1ffff lookup eth0 
22000:	from all fwmark 0x0/0xffff lookup eth0 
23000:	from all fwmark 0x0/0xffff uidrange 0-0 lookup main 
32000:	from all unreachable

第 0 条规则为最高优先级,表示所有的连接,首先遍历 local 表,用ip route命令查看local表的具体规则:

# ip route show table local
broadcast 10.0.0.0 dev eth0  proto kernel  scope link  src 10.3.7.130 
local 10.3.7.130 dev eth0  proto kernel  scope host  src 10.3.7.130 
broadcast 10.255.255.255 dev eth0  proto kernel  scope link  src 10.3.7.130 
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 

Android路由表

命令查看路由表

使用ip route命令查看路由表:

ip route show table <table_name>

通过读取rt_tables文件查看当前系统有哪些路由表:

# cat /data/misc/net/rt_tables
255 local
254 main
97 local_network
98 legacy_network
99 legacy_system
1002 eth0
命令查看所有路由表:
# ip route show table all                                      
default via 10.3.0.1 dev eth0  table eth0  proto static 
10.0.0.0/8 dev eth0  table eth0  proto static  scope link 
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.3.7.130 
broadcast 10.0.0.0 dev eth0  table local  proto kernel  scope link  src 10.3.7.130 
local 10.3.7.130 dev eth0  table local  proto kernel  scope host  src 10.3.7.130 
broadcast 10.255.255.255 dev eth0  table local  proto kernel  scope link  src 10.3.7.130 
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101
fe80::/64 dev eth0  proto kernel  metric 256 
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101
local ::1 dev lo  table local  proto none  metric 0 
local fe80::6bf:dfff:fe8c:675c dev lo  table local  proto none  metric 0 
ff00::/8 dev eth0  table local  metric 256 
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101
命令查看主路由表:

ip route命令默认打印就是主路由表.

# ip route show table main 
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.3.7.130

Android防火墙

命令查看防火墙:

/ # iptables -L                                                  
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
bw_INPUT   all  --  anywhere             anywhere            
fw_INPUT   all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
oem_fwd    all  --  anywhere             anywhere            
fw_FORWARD  all  --  anywhere             anywhere            
bw_FORWARD  all  --  anywhere             anywhere            
natctrl_FORWARD  all  --  anywhere             anywhere      
......
荣耀路由XD21是一款设计简洁、功能全面的家庭无线路由器,旨在提供高速稳定的网络连接便捷的设备管理体验。以下是对荣耀路由XD21的一些基本特点操作指导。 ### 使用前准备: 1. **电源适配器**:确保您的电源适配器已经连接到路由器,并插好电源插座。 2. **网线**:准备一条直通网线用于连接电脑或其他设备到路由器的LAN口。 3. **手机或电脑**:您需要一台电脑或支持Wi-Fi的移动设备用于配置路由接入网络。 ### 配置路由器: #### 使用PC端配置: 1. **登录路由器管理界面**:将电脑通过网线连接到路由器的LAN口上。打开浏览器输入路由器默认IP地址(通常为192.168.3.1),按回车键进入登录页面。 2. **输入用户名密码**:首次访问一般需要输入预设的管理员账号名密码,默认可能为“admin”作为账号名,“admin”或“password”作为密码。如果之前已修改过,使用更改后的设置。 3. **开始配置**:登录成功后,您可以看到路由器的各种配置选项,包括网络设置、安全设置、无线频段调整等。根据个人需求进行相应的设置。 4. **保存并重启**:完成所有必要的配置后,记得保存设置并重启路由器,以便生效。 #### 使用手机APP配置: 1. **下载App**:从应用商店下载荣耀官方的路由器管理App,如荣耀智慧生活App。 2. **扫描二维码**:在路由器底部找到二维码图标并用手机扫描,或者手动输入路由器的MAC地址或IP地址加入WiFi连接路由器。 3. **绑定账户**:按照提示绑定荣耀账号,便于后续的远程管理软件更新。 4. **配置路由器**:在App内可以直观地查看调整各项设置,如网络名称、加密方式、Wi-Fi信号强度控制等。 ### 日常维护与使用: - 定期检查路由器固件更新,确保使用最新版本的功能安全性提升。 - 清洁路由器散热孔,保持良好的通风环境,避免长时间高温导致性能下降。 - 如果多台设备同时在线,可能会对网络造成压力,注意合理分配带宽资源。 ### 相关问题: 1. **如何解决路由器频繁掉线的问题**? - 检查网络线路是否稳定可靠,是否存在干扰源。 - 检查路由器设置是否开启过多的安全防护措施,可能影响稳定性。 - 更新路由器固件至最新版本,修复潜在的技术缺陷。 2. **如何提高家庭Wi-Fi覆盖范围**? - 将路由器放置于开放空间,远离墙体其他电子设备。 - 可考虑购买并安装Wi-Fi放大器或扩展器,增强信号强度覆盖面积。 - 根据实际需要,增加路由器的数量或采用Mesh网络系统。 3. **路由器设置过于复杂,怎么简化操作流程**? - 利用路由器自带的向导模式进行快速设置,减少人工干预步骤。 - 学习使用路由器管理App,其图形化界面通常比Web端更直观易用。 - 查阅用户手册或官方教程,了解常用的快捷配置技巧一键优化功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值