开发需求
在进行开发时,本地机器不支持编译Android的代码,使用了服务器进行代码编译,有时候需要进行调试工作. 因为网络原因,无法将设备接入网络。
多个步骤完成
- 1 启用网络adb
adb tcpip 5555 - 2 配置转发,将本机的5555转发到5555端口
adb forward tcp:5555 tcp:5555 - 3 配置NAT进行网络转发
- 配置网络转发
sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.conf.eth0.route_localnet=1- 配置SNAT和DNAT
LOCAL_NETWORKS="192.168.xxx.yyy" sudo iptables -t nat -A PREROUTING -d ${LOCAL_NETWORKS} -p tcp --dport 5555 -j DNAT --to-destination 127.0.0.1:5555 # 配置 POSTROUTING 链,进行源地址转换,确保返回的报文能正确路由 sudo iptables -t nat -A POSTROUTING -d 127.0.0.1 -p tcp --dport 5555 -j SNAT --to-source ${LOCAL_NETWORKS}
配置adb逻辑
adb tcpip 5555
adb forward tcp:5555 tcp:5555
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.conf.eth0.route_localnet=1
LOCAL_NETWORKS="xxx.yyy.zzz.ddd"
sudo iptables -t nat -A PREROUTING -d ${LOCAL_NETWORKS} -p tcp --dport 5555 -j DNAT --to-destination 127.0.0.1:5555
# 配置 POSTROUTING 链,进行源地址转换,确保返回的报文能正确路由
sudo iptables -t nat -A POSTROUTING -d 127.0.0.1 -p tcp --dport 5555 -j SNAT --to-source ${LOCAL_NETWORKS}