我尝试对reverse thetering
使用不同的Android
说明,但没有人帮助过我。
我连接了几秒钟(30秒)然后连接消失了。
在连接管理器中,我看到了wired unmanaged
手机连接
我正在使用Linux
如何通过消除逆向互联网解决问题。
Linux配置有问题吗?
答案 0 :(得分:0)
如果你使用HTC mobile,android需要一个(windows)驱动程序来激活“Internet Transmission”,如果不是驱动程序,你会在几秒钟后丢失连接。
但是我们可以在不需要root移动的情况下破解它。使用这个连接6000移动端口的perl。此脚本可以启用“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";
}
答案 1 :(得分:0)
作为一种替代方法(与显示here的Perl脚本相同,但不需要Perl),您可以使用建议的here,我将在下面转录(与我做了一些修改):
首先,安装bind9,因为它可以避免DNS转发问题。
sudo apt-get install bind9
向iptables添加POSTROUTING规则:
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 Pass Through功能,则只能使用最后一行,因为所有手机需要的是端口6000上的二进制序列。
希望有所帮助。
答案 2 :(得分:0)