Implement OpenVPN in Android - android

I recently bought a VPS to create a VPN app but it looks like there is no tutorial anywhere about it.
I saw the ics-OpenVPN project on Github, but I have no idea how to use it!
All I want is to connect to a Linux server from my phone

First of all, install OpenVPN on your VPS server. Although I do not have experience to install OpenVPN on VPS server but I think you can follow this tutorial it looks easy https://www.skysilk.com/blog/2018/install-openvpn-linux-vps/
After complete your installation you will get the .ovpn configuration file. Now to connect with your VPN server from your android app you need an android client software like the ics-OpenVPN android client.
I have also developed an android VPN app based on OpenVPN library you can use my source code it is open source. The instruction of changing .ovpn file is given on the GitHub repository.
Github: https://github.com/ashraf789/Cake-VPN

Do it has to be VPN? Or does an sshconnection with porttunnel satisfy your needs? That is for example how i connect to services on remote servers. With the tunneled port you are able to map the port on the remote server to your local system and access via localhost:.

Related

How to deploy a XMPP server on a host to work with android clients?

I am trying to deploy a XMPP server on a remote host like example.com, and create a simple App in Android studio as a client, Several people will be able to install this Instant Messaging(IM) App on their android phone and start chat with each other over the internet.(Similar to Telegram)
What I have done:
I have installed Openfire on windows locally.
I found a simple source code for android studio, and could configure it to work with Openfire locally. Right now I am sending and receiving messages in Genymotion simulator between users I have defined in Openfire.
Problem:
1- I want to deploy Openfire or any other XMPP server on my own host which my classmates can install my android App and able to talk with each other. Fortunately, couldn't find step by step solution.
2- For test purposes, is there a free Openfire web hosting site to deploy my own server and text my android client with it?
3- Or if you have any experience with Xabber, And Conversations clients please comment here, I couldn't use Xabber, it is connecting and reconnecting, and couldn't figure out how to add friends in Conversations client to send messages.
there are many free hosting sites available.. but it might be little slow
I have used these two,
thefreecpanel.com
byethost.com
but I think you cant install openfire on it, as it has setup that you need to run (.exe file), but this setup is only for first time
you will have to host them on a virtual machine on a cloud.. try azure for students, i think in student free account you can make a virtual machine.
I have checked conversations and it is too good. ChatSecure was also good but had too many issues.So, I have made my own xmpp functions and classes

How can I put phpmyadmin online using xampp?

I am writing web-services for Android and don't know how to put phpmyadmin online for outside access.
Its help is given on appache friends website.
I also have try this and its working
In the basic configuration of XAMPP, phpMyAdmin is accessible only from the same host that XAMPP is running on, at http://127.0.0.1 or http://localhost.
To enable remote access to phpMyAdmin, follow these steps:
Edit the apache\conf\extra\httpd-xampp.conf file in your XAMPP installation directory.
Within this file, find the line below and update it to remove 'phpmyadmin' from the list of locations.
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
Restart the Apache server using the XAMPP control panel.
Hope this will help
PhpMyAdmin will, or should come installed on your web-host server if using a reputable hosting provider. In which case, the PhpMyAdmin panel will be accessible via your hosting panel dashboard once setup.
If you are going to be performing your own hosting you should most likely, download the latest (or required) version from the PHP.net site. And then installed to your server via command prompt or direct install.
Just follow the instructions on the website.
http://php.net/downloads.php

NodeJS on IOS/Android

Maybe what I'm about to ask is stupid, generally I don't have so experience with server-side.
I'm building an Angular web application, with nodeJS on the server-side.
I need that the server (Node.exe) will installed in the device itself (IOS/Android), and nodeJS will open a localhost socket to communicate with the device.
(According to nodeJS official web site, nodeJS only support windows/Mac OS/Linux)
It's possible to do that?
If not, there is another server can I install in the device?
Yes you can with JXCore (a fork of nodejs), more info in this link
Build Mobile Apps with JavaScript and the Node.js Ecosystem repository is in here.
And how to compile it is in here JXCore - How to Compile
But if you need it to be nodejs (not the last version) you can use this link to do what you need Building and running Node.js for Android
UPDATED 27-09-2018
Like someone has pointed out, that project is no longer maintained but I have found and alternative by Using Termux on an Android phone you can use nodejs / gcc / vim / etc and more tools to do many thing
This link show how to do it for nodejs ( and I have tested it on my phone ):
Building a Node.js application on Android - Part 1: Termux, Vim and Node.js
First install termux from playstore, of course.
I don't understand the point of using a server tool on the client side.
If your application should work with an offline mode, you should put all data and other in your client app (using cordova).
If your application works with an online mode the server side is needed to serve your data. Here you can setup a nodeJS API which provides routes for your application to have content to print.
I'm not sure I brought you the wanted answer, so can explain more the point of using a server tool on a client device?
What you are trying to achieve, turns your device into a server.
A server side language is meant to stay on the server.
I don't really see why you need to open a localhost socket on the device to communicate with itself. Is it for offline testing? You can do that since you have a computer and a device, and both are connected to the same network.
I believe a really good start would be understanding the concept of the Client-Server architecture first.
But in short, the proper way of implementing a Client-Server app using your chosen technologies would be:
A server should provide the client with answers to his requests.
So in Node.js (server-side), write whatever you want to communicate with your database (Create, Read, Update, Delete), do custom processing, etc...
and return a structured answer.
The client is expecting answers to his requests, and is supposed to handle the answers in code. So the program written in AngularJS (which is your client-side language) will be installed on devices.
The client has to know the format of the server's answer. Is it plain text? XML? JSON? ...
so you mean you would like to have an app can run some services via http?
not sure if iOS allows application with JS virtual machine executing code ...
and for Android
searching on Github and I find how to build NodeJS for Android
https://github.com/dna2github/dna2oslab/tree/master/android/build
Here is an example to run compiled Nginx binary on Android at https://github.com/dna2github/dna2mtgol/tree/master/fileShare
You may modify a little more to replace Nginx to NodeJS. The code to run Nginx is not very nice; maybe you can try an Android Service to let the server run on backend on Android device.
Hope it is what you want.

Google App Engine, gradle, open port

I'm developing an android app with Google app engine endpoint using Android Studio.
Is it possible to make the local app engine server open the port it is running on? I'm trying to debug an android application with a phone that is in the same LAN as my app engine server but I can't do that because the ports doesn't open.
Meaning, while I'm able to reach the server program at localhost:8080 from the server computer, I'm not able to reach it from my phone at {server_ip}:8080.
Now I'm sure I am not having problems with port-forwarding in my router, since
when I take the generated war-file and deploy it to a tomcat server, I'm able to reach the server from my phone. But then I will not be able to do a step-by-step debugging in Android Studio.
Thanks NNJ,
After reading that post (https://stackoverflow.com/a/21776775), I understood that I should include httpAddress = '0.0.0.0' in my build.gradle for the server module and now I'm able to reach the endpoints from outside the server.

How to access computer's local host on Android phone?

I'm currently using Android Studio to prototype an Android application. I'm trying to use the Google App Engine Servlet Module to write a prototype backend for my app. I can run the dev server and access the page via localhost:8080. However, I cannot access this address on my physical android phone over the same wifi connection.
I understand that I cannot use the term localhost within the Android's web browser because that does not refer to the computer's instance of localhost. I tried looking up my computer's ipv4 address and using the "ipaddress:8080" to access the page on the phone, but that does not seem to work either for the Servlet Module within Android Studio.
I have an older server application running on Apache Tomcat within Eclipse. When I run that, I am able to utilize the "ipaddress:8080" method to access the page on my android device.
Any ideas as to why this works while the Android Studio Google App Engine Servlet Module dev server fails? Any suggestions as how to resolve this issue would be greatly appreciated!
You can access the localhost in the following way : 10.0.2.2:8080
I realized that the server did not bind to my IP address. I changed configuration settings within Android Studio for my server to use http address "0.0.0.0". It now works.
In my case, I was receiving null for list request after deploying backend (running on Android device). For some reason backend received requests and didn't respond. The fix for me was to re-deploy and create new project, syncing with my android project front-end code. Then as a result my front end was connected to the back-end exactly as described here: https://github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/master/HelloEndpoints step 2.3, and two additional fields were generated in my JSON: "kind" and "etag"

Categories

Resources