最近要整理下pytest-xdist方面的资料,但是尝试通过虚拟机远程连接模拟器的时候,都是报如下的超时:
因为我用的逍遥模拟器,尝试换成夜神模拟器,连接超时
这种直接会报一个连接拒绝
DHCP是动态分配的ip,所以和静态ip的效果差不多,连接超时
连接超时
就在这一步执行的过程中,偶然发现了异常之处,这里贴下源码看下
[root@localhost ~]# docker run --privileged -d -p 4725:4723 --name appium appium/appium
**WARNING: IPv4 forwarding is disabled. Networking will not work.**
6a5cfdea75630c0fe4494de6ea28e4e9c31b1a93f3b11adf627e92486fcaa980
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a5cfdea7563 appium/appium "/bin/sh -c ‘/root/w…" 28 seconds ago Up 3 seconds 4567/tcp, 0.0.0.0:4725->4723/tcp appium
[root@localhost ~]# docker exec -it appium adb connect 192.168.0.106:7777
* daemon not running; starting now at tcp:5037
* daemon started successfully
failed to connect to ‘192.168.0.106:7777‘: Connection timed out
[root@localhost ~]# vim /usr/lib/sysctl.d/00-system.conf
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a5cfdea7563 appium/appium "/bin/sh -c ‘/root/w…" 6 minutes ago Up 5 minutes 4567/tcp, 0.0.0.0:4725->4723/tcp appium
[root@localhost ~]# systemctl restart network
[root@localhost ~]# docker rm -f appium
appium
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc5f8a08abd1 centos:7.6.1810 "/bin/bash" 2 months ago Exited (137) 2 months ago elastic_cori
[root@localhost ~]# docker run --privileged -d -p 4725:4723 --name appium appium/appium
9e4cb3a76ab1f8d79c07472e6eb673d3886606c1ce1d4cdcc88fe57f42f3a34f
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e4cb3a76ab1 appium/appium "/bin/sh -c ‘/root/w…" 5 seconds ago Up 4 seconds 4567/tcp, 0.0.0.0:4725->4723/tcp appium
[root@localhost ~]# docker exec -it appium adb connect 192.168.0.106:7777
* daemon not running; starting now at tcp:5037
* daemon started successfully
connected to 192.168.0.106:7777
[root@localhost ~]#
这里的错误是WARNING: IPv4 forwarding is disabled. Networking will not work
,这是IPV4转发功能已经禁用,会导致主机中的容器无法与其他主机进行通信
解决办法
[root@localhost ~]# vi /usr/lib/sysctl.d/00-system.conf
# 写入如下配置,保存退出
net.ipv4.ip_forward=1
#重启网络服务
[root@localhost ~]# systemctl restart network
从上面贴的代码可以看到,连接成功了
夜神模拟器重启后设置的静态ip和实际获得的ip不一样
逍遥模拟器设置的静态ip和实际获得的ip一样,但首先要切换MAC地址,再重启
设置桥接不能和虚拟机的ip相同,否则会出现两个问题:一个是把xshell连接断开,一个是docker appium adb连接模拟器时被拒绝
《docker : 报错 WARNING: IPv4 forwarding is disabled. Networking will not work.》
docker appium无法通过tcpip连接远程模拟器——一个排查了三天的问题
原文:https://www.cnblogs.com/my_captain/p/13310263.html