Related
Hi,
Last week I received my Archos 101. In general it is great. Even better is this forum
I installed urukdroid (thanks to the project-team!). I tried to use openvpn but it failed and I am not sure about the reason.
The server-configuration is
...
ifconfig-pool 10.10.10.120 10.10.10.130
push "route 10.10.10.1"
route 10.10.10.0 255.255.255.0
ifconfig 10.10.10.1 255.255.255.0
push "route-gateway 10.10.10.1"
push "route 10.10.10.0 255.255.255.0"
...
As the Archos is the only device it would get IP 10.10.10.120.
BUT: ifconfig shows:
inet addr.: 10.10.10.255 Bcast: 10.255.255.255 Mask 255.0.0.0
That did (and cannot) work. No ping to home network possible.
When I called route it looked fine (I used redirect-gateway).
When I send the command
ifconfig tap0 10.10.10.120 broadcast 10.10.10.1 netmask 255.255.255.0
from Archos Terminal I had at least access to my home network. But all route entries are gone.
Who has an idea what I am doing wrong? I checked it in the last day again and again... If there is no solution: is it possible to 'save' the entries from route and restore it after my manual change of ifconfig? I would like to do it via script, as my home network I only reachable via dyndns.
Thanks and best regards!
I used the OpenVPN Howto Quickstart and had no problems.
macemoneta said:
I used the OpenVPN Howto Quickstart and had no problems.
Click to expand...
Click to collapse
Yes, I know the guide. I did the same with my ubuntu-netbook and it works directly.
And I think, it would work also on the Archos, if the openvpn/ifconfig on Archos accept the 10.10.10.120. But the IP is changed to 10.10.10.255 and that did not fit.
Where the h*** did the 255 instead of 120 come from?
I noticed the same problem...
No idea where it comes from, but as a workaround, you can put a script somewhere containing a suitable "ip addr add x.x.x.x/y dev z" statement, and reference that in the .conf file as "up scriptname".
Note that you need to add "--script-security 2" to the openvpn commandline to make that work. I added that to the OPENVPN_CFG variable in /etc/uruk.conf/openvpn.
regards
Patrick
This is the openvpn configuration I use for my Archos 101 (on the server). I'm not having any problems, using openvpn 2.1.1:
Code:
port 1194
dev tun
tls-server
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/[COLOR="Blue"]<my host>[/COLOR].crt
key /etc/openvpn/keys/[COLOR="blue"]<my host>[/COLOR].key
dh /etc/openvpn/keys/dh1024.pem
mode server
ifconfig 10.8.0.1 10.8.0.2
ifconfig-pool 10.8.0.4 10.8.0.255
push "route 10.8.0.1 255.255.255.255"
client-config-dir ccd
push "redirect-gateway def1"
push "dhcp-option DOMAIN [COLOR="Blue"]<my domain>[/COLOR]"
push "dhcp-option DNS [COLOR="blue"]<my dns server>[/COLOR]"
keepalive 10 60
inactive 3600
route 10.8.0.0 255.255.255.0
user openvpn
group openvpn
persist-tun
persist-key
verb 4
I examined the situation a bit further.
The problem comes from the ifconfig command that openvpn calls itself:
Code:
/system/bin/ifconfig myvpn \
192.168.x.41 \
netmask 255.255.255.0 \
mtu 1500 \
broadcast 192.168.x.255
This is only used when tap interfaces are involved, which is the case in my setup, but not in the setup macemoneta is showing. caesar68: do you also use tap interfaces?
I can reproduce the problem by just using that ifconfig command again.
When I list the IP-address-to-set as the last argument, instead, it works, i.e.
Code:
/system/bin/ifconfig myvpn \
netmask 255.255.255.0 \
mtu 1500 \
broadcast 192.168.x.255 \
192.168.x.41
A quick scanning of the openvpn manpage, does not suggest a way to override the ifconfig command that is used, but it does give an option --ifconfig-noexec which suppresses its calling.
Unfortuntely, when I just pack the is-working-after-the-interface-is-up ifconfig command into an up script with this option, it just gives me an error SIOCSIFNETMASK (Cannot assign requested address) - even if the same commandline works when I run it over an already upped interface... Probably because the interface then already had an IP address...
No problem, though, ifconfig is obsolete anyway, let us just use ip link and ip addr, which are fortunately available under Uruk.
So, caesar68, the clean solution would be to have
--script-security 2 on the openvpn commandline, e.g. via OPENVPN_CFG in /etc/uruk.conf/openvpn
in your myvpn.conf file:
Code:
ifconfig-noexec
up-delay
up-restart
up /etc/openvpn/myvpn-on-up
a corresponding script /etc/openvpn/myvpn-on-up, executable, with content
Code:
#! /system/bin/sh
ip link set $dev mtu $tun_mtu up
ip addr add $ifconfig_local/$ifconfig_netmask \
broadcast $ifconfig_broadcast \
dev $dev
Works For Me
Thanks for the explanation and the workaround, brian_o'fish. Why are you using tap though? Tap provides an Ethernet bridge, so you'll be transporting packets that really don't need to be sent to your Archos (reducing available bandwidth). Tun is layer 3 routed, so only traffic destined for either endpoint goes over the VPN connection.
macemoneta said:
Why are you using tap though?
Click to expand...
Click to collapse
That's what the server I'm using, is configured to do, as it provides transparant bridged LAN access via VPN, and that is what I want, as I am the admin of said LAN and VPN.
If the low level of broadcasts we have, ever increases or appears to be a problem to me, I'll set up an additional tun server, but for now it is simply not an issue.
Anyway, good hint in general!
Hi all!
Thanks a lot for your comments. Yes I am using tap. I would like to have access to my home network (storage etc.). Therefore I want to use the brigde functionality. And that works only when I changed the ifconfig manually afterwards. But the route is distroyed then and packages to the internet are not routed secure thru my home-network.
@ brian_o'fish: Thanks for the advise. I will try that the next days. In the moment I am happy to read, that I am not the only one with the problem (and maybe to stupid to use openvpn - but on the netbook it works).
I have never worked with tun. Maybe I could check, if that is also a workaround.
I will keep you informed, but I am on a trip the next days.
Thanks again!
*** Update ***:
I didn't work neither with tap nor with tun. Meanwhile I tried to run VPNC. I had some trouble, but it works now.
caesar68 said:
I didn't work neither with tap nor with tun.
Click to expand...
Click to collapse
Did you try the approach I described with tap, and can tell where / how it failed?
This is a DEV thread.
Unfortunately can't post in DEV forums as i never wrote in this site.
I've been working on enabling USB to Ethernet dongle on our Transformers as i didn't see any successful attempt in this area.
For my experiments I use USB to ethernet dongle from DealExtreme: (Link deleted. Can't post links. Search for "SKU 34691")
This dongle is based on ASIX AX88772B chipset.
Linux Driver was downloaded from: (Link deleted. Can't post links. Google for the driver v4.1.0)
I've compiled the driver with latest Clemsyn kernel downloaded from his git: (Link deleted. Can't post links)
The driver compiles without errors to asix.ko file (attached)
After insmoding the driver into the kernel i connected the dongle to USB port on the keyboard dock and connected RJ45 cable to it from my router. The blue led turned on and started to blink!! (Never happened before!).
Encouraged by this development i've executed the following sequence in terminal:
Code:
ifconfig eth0 10.0.1.17 netmask 255.255.255.0 broadcast 10.0.1.255
route add default gw 10.0.1.1
The commands executed without errors and i tried to ping my router
Code:
ping 10.0.1.1
and.. it WORKED!
Started pinging computers in my local LAN - everything WORKED!
Access to router web interface via browser - WORKS!
Here the happy story ends.
I couldn't manage to ping any IP addresses outside the local network.
I think i'm very close to make this work.
Any help will be appreciated.
Edit:
FULLY WORKS!!!
Need to add DNS configuration (i set to Google DNS server):
Code:
setprop net.dns1 8.8.8.8
And that is it!
USB to Ethernet dongle fully works on Asus Transformer
Edit 2:
Not all applications work with wired connection.
Browser and Gmail work, but Skype does not.
Need to investigate further.
Good stuff! It would be nice to have the option to use a wired network in case you needed to! Great work!
dear Quiethinker~~
i have been searching for whole day and finally reach your post. good stuffs
it would be even better if you can share the procedures step by step, such as how to "insmod" ....
thank you very much~~
jaseli said:
dear Quiethinker~~
i have been searching for whole day and finally reach your post. good stuffs
it would be even better if you can share the procedures step by step, such as how to "insmod" ....
thank you very much~~
Click to expand...
Click to collapse
I'll try to explain the procedure step by step (a bit improved sequence since my first trails):
1. Get USB to Ethernet dongle from DealExtreme (SKU 34691) - Do not attach it yet.
2. Install terminal application on the Transformer (such as "Android Terminal Emulator")
3. Turn off the WIFI.
4. Extract axis.ko.zip to some location in the Transformer (for example root of the sdcard)
5. Open terminal application and execute the following commands in the command line:
Code:
su
insmod [PATH_TO_KO]/axis.ko
6. Attach USB to Ethernet dongle to USB port on the Transformer's dock and connect RJ45 network cable. (Blue led on the dongle should start blinking)
7. Execute the following commands in the command line:
Code:
/system/bin/dhcpdc eth0
setprop net.dns1 8.8.8.8
8. Test that you have internet connection:
Code:
ping google.com
Currently there is lots of limitations with this solution:
- I compiled the KO module with clemsyn kernel v8b and checked only with this kernel.
- Android system doesn't recognize wired connection and therefore many apps think that there is no connection available
- When transformer going to power-down mode it disconnects the USB network. After waking up need to execute step 7 again.
I'm currently working on several directions in this area:
- Enabling support for more USB to Ethernet sticks within the kernel (custom kernel release is needed unless kernel devs will push the changes into their kernels)
- Enabling automatic configuration for wired network in android (Some scripting)
The achievement in this post is a proof of concept. I'm making a progress but very slowly due to very limited time. I hope more devs will pick this up.
Also attaching the sources for asix.ko driver so people can compile it with different available kernels
The drivers for ASIX AX88772B chipset are already in the kernel
I have one of these usb-eth dongles too and it works without the need for any extra drivers.
I simply run dhcpcd eth0 to pickup an ip address from dhcp and then setprop net.dns1 8.8.8.8 for dns.
I have an EDIMAX EU-4207
Other dongles using this chipset include the WII adapter, the Apple dongle and the linksys/cisco USB200M or USB300M
Roach2010 said:
The drivers for ASIX AX88772B chipset are already in the kernel
I have one of these usb-eth dongles too and it works without the need for any extra drivers.
I simply run dhcpcd eth0 to pickup an ip address from dhcp and then setprop net.dns1 8.8.8.8 for dns.
I have an EDIMAX EU-4207
Other dongles using this chipset include the WII adapter, the Apple dongle and the linksys/cisco USB200M or USB300M
Click to expand...
Click to collapse
Good to know that your kernel includes it!
(Checked your GITHUB, do your refer to CONFIG_USB_NET_AX8817X=y ?)
Till now i worked with Clemsyn-Blades kernel and this wasn't included (maybe need to switch kernels )
Now only need to find automatic way to configure eth0 on insert/wake-up and it will be usable for regular users.
Quiethinker said:
Good to know that your kernel includes it!
(Checked your GITHUB, do your refer to CONFIG_USB_NET_AX8817X=y ?)
Till now i worked with Clemsyn-Blades kernel and this wasn't included (maybe need to switch kernels )
Now only need to find automatic way to configure eth0 on insert/wake-up and it will be usable for regular users.
Click to expand...
Click to collapse
Ah yes, Asus added support since 3.2. I think we can enable it via a service call in init.rc but eth0 doesn't play too well with wlan0 I've found.
proby a dumb question anyways
but has to be a rooted device doesn't it?
lil-devil said:
proby a dumb question anyways
but has to be a rooted device doesn't it?
Click to expand...
Click to collapse
Shortly - yes
Ok, it works well with my USB Lan adapter (Browser, Market browsing, etc.), but if I want to download an app from the market it doesnt work (only over Bluetooth or Wifi).
Lines I used:
dhcpcd eth0
setprop net.dns1 8.8.8.8
Is there a solution for the market download problem?
Would one or both of these adapters be supported?
http://www.monoprice.com/products/subdepartment.asp?c_id=103&cp_id=10311&cs_id=1031102
Thanks.
No: Product ID: 6150
Maybe: Product ID: 5345
You need NetGear FA 120 (search ebay)
xperiaflooter said:
Ok, it works well with my USB Lan adapter (Browser, Market browsing, etc.), but if I want to download an app from the market it doesnt work (only over Bluetooth or Wifi).
Lines I used:
dhcpcd eth0
setprop net.dns1 8.8.8.8
Is there a solution for the market download problem?
Click to expand...
Click to collapse
Its a problem with honeycomb. Currently it doesn't support wired connections. We can trick it on "kernel level" but some applications use additional API to check for connectivity. Currently I don't know how to trick this API.
Sent from my HD2 using xda premium
Thanks for the info. But I dont know why Asus integrated USB LAN drivers, without automatic loaders. That makes no sense. But,... ok, I am glad that the driver is inside
xperiaflooter said:
Thanks for the info. But I dont know why Asus integrated USB LAN drivers, without automatic loaders. That makes no sense. But,... ok, I am glad that the driver is inside
Click to expand...
Click to collapse
Maybe in some future honeycomb update this feature will be built-in.
I really hope so at least!
I was able to get my USB 2.0 NIC working without a module on Stock3.2 (rooted) and Prime! 1.8.4.
I found a script on here that I placed in /data/ for DHCP
Code:
#!/system/bin/sh
netcfg eth0 dhcp
dhcpcd eth0
DNS1 = `getprop net.eth0.dns1`
DNS2 = `getprop net.eth0.dns2`
setprop net.dns1 $DNS1
setprop net.dns2 $DNS2
Here is the one for static.
Code:
#!/system/bin/sh
busybox ifconfig eth0 192.168.1.22
route add default gw 192.168.1.1
setprop net.dns1 8.8.8.8
setprop net.dns2 8.8.4.4/
Here is the original post from XDA user : Linuxslate
http://forum.xda-developers.com/showpost.php?p=14367749&postcount=41
I don't recall the brand, but here is the chipset.
http://www.asix.com.tw/products.php?op=pItemdetail&PItemID=97;71;101&PLine=71
ciphercore said:
I was able to get my USB 2.0 NIC working without a module on Stock3.2 (rooted) and Prime! 1.8.4.
.....
I don't recall the brand, but here is the chipset.
http://www.asix.com.tw/products.php?op=pItemdetail&PItemID=97;71;101&PLine=71
Click to expand...
Click to collapse
That's pretty cool. The Cisco-Linksys USB300M adapter appears to be using that same chipset, so I went ahead and ordered one. I should receive it sometime next week, at which time I'll report back if it works.
I'm working now
Running 3.2 with the latest build 8.5.9. It seems to have the needed driver built in corectly. I've then taken the following script and put it in /system/sbin (I called it wired) The apple USB to ethernet adapter is the one I'm using (cheapest available)
#!/system/bin/sh
ifconfig eth0
if [ $? -gt "0" ]; then
netcfg eth0
dhcpcd eth0
export DNS1=`getprop net.eth0.dns1`
export DNS2=`getprop net.eth0.dns2`
setprop net.dns1 $DNS1
setprop net.dns2 $DNS2
else
netcfg eth0 down
fi
If the device is not up $? will be larger than 0 (0 is success and if the device is down the command fails.) So the script brings up eth0. If eth0 is up $? equals 0 and the script brings the device down cleanly.
Now If I can just figure out how to turn this into an icon on the desktop I'll be all set
linuxrebel said:
Running 3.2 with the latest build 8.5.9. It seems to have the needed driver built in corectly. I've then taken the following script and put it in /system/sbin (I called it wired) The apple USB to ethernet adapter is the one I'm using (cheapest available)
#!/system/bin/sh
ifconfig eth0
if [ $? -gt "0" ]; then
netcfg eth0
dhcpcd eth0
export DNS1=`getprop net.eth0.dns1`
export DNS2=`getprop net.eth0.dns2`
setprop net.dns1 $DNS1
setprop net.dns2 $DNS2
else
netcfg eth0 down
fi
If the device is not up $? will be larger than 0 (0 is success and if the device is down the command fails.) So the script brings up eth0. If eth0 is up $? equals 0 and the script brings the device down cleanly.
Now If I can just figure out how to turn this into an icon on the desktop I'll be all set
Click to expand...
Click to collapse
Great script!
Search for GScript app on the market. This is what you looking for
earlyberd said:
That's pretty cool. The Cisco-Linksys USB300M adapter appears to be using that same chipset, so I went ahead and ordered one. I should receive it sometime next week, at which time I'll report back if it works.
Click to expand...
Click to collapse
Just to update, the USB300M works fine as well.
USB reverse tethering = Cellphone gets network connection from PC via USB.
I know how to do USB reverse tethering except for one problem: Many Android apps will check network connection using the code below before doing any useful work:
Code:
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
The problem is that, when using USB reverse tethering, the above code will report no network connection. However, there IS a network connection (which is the USB reverse tethering itself), and ping, wget and all programs not doing this stupid check work well.
So the question is: How can I hack the system to let this network connection check return success (so that I can fool these apps)?
BTW. I use Cyanogenmod 7. And any solution specific to this MOD is also welcome.
Hello,
Could you please tell me how did you do the USB reverse tethering? Since on USB connection there is no option to do that under CM 7.1?
...
Thank you. Unfortunately the binary /system/bin/netsharing is not part of CM7.1, apparently it exists with Sense ROM. How do you manage to run it under CM7.1?
Sense ROM has the reverse USB tether built-in ("Internet passthrough"), maybe if the 2 commands could be executed, thanks to existing HTC NDIS driver doing NAT inside the PC it will work?
I've tested in CM7 that netsharing is not needed. Just execute the rest of the commands will be OK. Of course you need to do NAT on the PC because what you've setup is just a small LAN with private IP addresses.
Thank you for your input.
What I understand:
1- connect the phone via USB cable, choose charge only
2- Assuming my router has IP 192.168.1.1:
So I have to type these commands, could you confirm?
Code:
echo 4 > /sys/devices/platform/msm_hsusb/usb_function_switch
route add default gw 192.168.1.1
ifconfig usb0 192.168.1.1 mtu 500 up
But then how to do the NAT thing is out of my knowledge!
In fact what I want is when there is no router (since mine is wireless) with available Internet connetion
(ADSL line down). So I have to use USB 56kbps modem with telephone line to access Internet from the PC (running XP).
And I would like to plug the Android phone with USB cable and allow the phone to access Internet (Internet sharing
with the PC). I am not sure of the operations to do then.
Sorry but I don't know how to set up NAT on Windows XP... I use Linux and a simple iptables command suffices:
Code:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
I've been looking for this for a while finally I got it, this is what I did:
- Connect your android device to your linux PC
- Enable USB tethering
- On your linux box as root (I'm using Fedora 16)
Code:
iptables -A POSTROUTING -t nat -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
ifconfig usb0 12.12.10.1
With this you will enabled internet sharing between network interfaces and assign an IP to the usb interface.
- Enable mobile data access (3G) on your android
- On your Android using adb or terminal emulator
Code:
ifconfig rmnet0 0.0.0.0
ifconfig usb0 12.12.10.2
route add default gw 12.12.10.1 dev usb0
setprop net.dns1 8.8.8.8
The first line will disable the data traffic through your 3G connection so all the traffic wiil go through the USB
- Enjoy
All apps works because they see a vaild 3G connection!!!
WARNING: If during you are USB connected, the 3g connection is reset, the system will restore its IP and DNS so
the traffic will go through this interface you must reset again the IP to 0.0.0.0 and the dns to 8.8.8.8. Maybe
one of the devs here could help us to prevent this happened. You can always check the IP values of all interfaces by typing "netcfg"
Press Thanks if I help you
everytime,
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
yes i tried with sudo, same output.
using ubuntu12.04 64 bit. all other commands are fine,
gandhar said:
everytime,
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
yes i tried with sudo, same output.
using ubuntu12.04 64 bit. all other commands are fine,
Click to expand...
Click to collapse
In Ubuntu you can re-direct to files you own as the user calling sudo, such as files in your home directory, but not system files
so try this:
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
or you can edit /etc/sysctl.conf and then run sysctl -p
secondary problem
Thank you very much for your post, this is what I was looking for.
I have configured correctly, ubuntu 12.10 and android 2.3.7 (Huawei U8650) but there is a problem.
Only works a few seconds, the first moments. In the browser takes more time, but when I open "play store" internet is disconnected. It seems they check applications and stop working, it's strange. Configuration is successful because it works, but only a few seconds ...
Seems to prove that internet applications not from the 3g and crashes ...
I have broken the wireless on my huawei U8650 and this is the only way I can access the internet
Thanks in advance
PS: I'm Spanish, sorry for my bad English.
wideru said:
Thank you very much for your post, this is what I was looking for.
I have configured correctly, ubuntu 12.10 and android 2.3.7 (Huawei U8650) but there is a problem.
Only works a few seconds, the first moments. In the browser takes more time, but when I open "play store" internet is disconnected. It seems they check applications and stop working, it's strange. Configuration is successful because it works, but only a few seconds ...
Seems to prove that internet applications not from the 3g and crashes ...
I have broken the wireless on my huawei U8650 and this is the only way I can access the internet
Thanks in advance
PS: I'm Spanish, sorry for my bad English.
Click to expand...
Click to collapse
Yes sometimes it happen to me too but normally takes several minutes even hours not seconds, READ the WARNING.
Hope it help.
rply plx
what about windows 7 ?
how can i let my all apps including vpn to be worked with reverse tethering
Qutub Uddin said:
what about windows 7 ?
how can i let my all apps including vpn to be worked with reverse tethering
Click to expand...
Click to collapse
check this http://forum.xda-developers.com/showthread.php?t=1371345
hello guys,
i'm developing an automatic vulnerability scanner/exploiter for android.
i'm adding the cool feature of using the metasploit framework from our android phones, but i'm having a big issue.
i can start the MsfRpcd ( the metasploit daemon ) from a su shell an make it bind to the 127.0.0.1 address.
i can connect to the server using busybox netcat ( no Java though here ).
i can't connect to 127.0.0.1 from the android app! i got ECONNREFUSED.
uff!
after a bit of google i understood that JavaVM have a separate network and it filter out my connection to localhost/127.0.0.1.
how can i connect to a service bind to 127.0.0.1 on my phone from an android app?
this is a jail!
NOTES:
i gave a quick look at iptables -L output, maybe i can make some hack there, but probably i will break the JavaVM network.
thanks in advance!
-- tux_mind
PS:
binding on wifi ip is not an answer.
WORKAROUND:
do not use socket library, use URLConnection:
Code:
u = new URL("http", InetAddress.getLocalHost().getHostAddress(), mPort, "/api/");
huc = u.openConnection();
huc.setDoOutput(true);
huc.setDoInput(true);
huc.setUseCaches(false);
huc.setRequestProperty("Content-Type", "binary/message-pack");
huc.setReadTimeout(0);
huc.getOutputStream().close();
-1 for google