我尝试过对Android使用不同的reverse thetering指令,但是没有人帮助我。
我连接了几秒钟(30秒),然后连接消失了。
在连接管理器中,我已经看到我的电话的wired unmanaged连接
我正在使用Linux
我如何解决反向互联网消失的问题。
Linux配置有问题吗?
发布于 2013-08-27 09:38:35
如果你使用HTC手机,android需要一个(windows)驱动程序来激活“互联网传输”,如果这里没有驱动程序,你将在几秒钟后失去连接。
但是我们可以在不需要root mobile的情况下破解它。使用这个perl连接移动设备的6000端口。此脚本可以启用"Internet传输“,您可以看到一个图标显示在面板上。
● cat bin/htcsock.pl
#!/usr/bin/perl
use IO::Socket::INET;
#6000/tcp open X11
do{
open IN,"/proc/net/arp"; @arp=<IN>; close IN;
@d=grep ! /00:00:00:00:00:00/,grep /0x2.*usb0/,@arp;
} until($d[0]);
$_=$d[0]; s/\ .*//; chomp; print "sock:\t$_\n";
my $sock = IO::Socket::INET->new(PeerAddr => $_ , PeerPort => 6000, Type=>SOCK_STREAM, Proto=>"tcp") or die "socket connect fail. $@\n";
print $sock "\x00\x02\x00\x00"; receivesock();
print $sock "\x00\x03\x00\x00"; receivesock();
print $sock "\x00\x05\x00\x00";
close $sock;
sub receivesock{
local $/=\4;
print "Receive: --"; print unpack "H*",<$sock>; print "--\n";
}发布于 2014-02-05 02:44:29
作为另一种方法(与显示here的Perl脚本的功能相同,但不需要Perl),您可以使用建议的here,我将在下面转录(我做了一些修改):
首先,安装bind9,因为它可以避免DNS转发的问题。
sudo apt-get install bind9将POSTROUTING规则添加到iptables:
sudo iptables -A POSTROUTING -t nat -j MASQUERADE允许数据包转发:
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward现在插入您的手机,并选择‘互联网通过’。
等待设备出现在ifconfig中。
检查它是否也在arp中。
我发现我必须拔出设备,然后重新插入才能让它出现在arp中,如果arp没有显示设备,事情就不会正常工作。
然后,设备将等待HTC Sync发送消息,因此您必须模拟HTC Syncs消息:
#change this line to be more specific if you have more than one usb network device
phone_usb_device="usb"
get_ip ()
{
arp -n | grep $phone_usb_device | awk '{print $1}'
}
#TODO: This needs a timeout and loop needs cleaning up, but works fine and borrowed from another post.
echo "waiting for IP on computer usb"
while [[ `get_ip` < 192 ]];do sleep 2; done
phoneip=`get_ip`
echo "IP adress is $phoneip "
echo -n -e "\x00\x02\x00\x00" | nc -q 2 $phoneip 6000 > /dev/null后面的部分可以转换为D-Bus脚本。
如果您只是想测试Internet直通功能,您可以只使用最后一条线路,因为所有电话需要的是端口6000上的二进制序列。
希望这能有所帮助。
发布于 2015-05-22 10:23:52
https://stackoverflow.com/questions/18401704
复制相似问题