I developed a NodeJS web application meant to be accessed on a private wifi network.
My goal is to have users connect to my server hosted on Ubuntu 14.04LTS, on which I setted up a Wifi hotspot.
The users connect to the wifi network with mobile devices, and then go with their browser to
http://my.server.local.ip/
What is the easiest way to set up a DNS (or something else) so that they are able to browse to a human readable URL instead of my IP ?
Sorry if the question has been answered before, I am a beginner in network configuration and I may not search the good keywords.
Thanks for reading
EDIT:
I forgot to mention that my network provides no access to Internet. I already own a domain for this app, but for the online-version of it. My goal is to build a portable server machine which can serve the application to mobiles on bad Internet coverage areas.
This depends on which machine acts as the DNS-server for your network. Does your Server/WiFi-AP just redirect/bridge the traffic to an ethernet-port and the DHCP-requests from the mobile devices are answered by another device (router-box?) in your network? In that case, that box will also be the DNS-server the mobile devices will be querying for hostname resolution. Maybe you can configure a static IP and hostname for your Ubuntu-server in the router's web interface.
Otherwise, you can set up a DHCP and/or DNS-server on the Ubuntu-machine. A lightweight tool for this job is DNSmasq (http://www.thekelleys.org.uk/dnsmasq/doc.html). This seems to be what you want, reading your latest comment. Configure a static IP address for the server-machine's WiFi-Interface and configure your DNS-server running on the Ubuntu-machine to map the hostname/domain of your choice to that IP. Then the mobile devices can access the website delivered by the Ubuntu machine by using that domain name.
Related
I'm trying to make my network server online and link it to a system and an application that I designed. However I don't want to make a website to upload the server to. Is this possible? Can I link my server directly to my software and my application via the internet? Thanks.
You can connect to servers with out the world wide web.
Their is for example the Gropher protocol.
Most likely this is not what you are looking for.
If you want to reach your server from the outside you need a public IP address. Your internet provider has to give you one. You could get around this, if you know someone with a public IP who accepts to forward your traffic.
Today many of the routers do not forward inbound traffic from internet to LAN devices by default.
What are the best standards to use for my application to set up a dynamic inbound port-forwarding automatically for my services (UDP and/or TCP)?
I'm looking for solution like UPnP or whatever. It'd also need to be backwards compatible with old routers/modem.
P.S. How do software like utorrend implement this?
You need portforwarding. You need to know the ip adres of your server. For windows i use ipconfig, but you did not mention your OS.
Then you need to access your router (via your browser, type in the ipadres of your router itself). There you can login into your router and access the menu of the router. Search for portforwarding and set redirect the port you want to your server. I suppose you use your server as a bittorrent client:)
Some solutions I found:
Internet Gateway Device Standardized Device Control Protocol (IGD), by uPnp.
Application-level gateway (ALG).
STUN (thanks Sigismondo).
NAT Port Mapping Protocol (PMP) for MAC devices.
Others ? Pro and cons ? compatibility ?
Is it possible to access smtp4dev from a remote computer. I am using smtp4dev locally for development so that I can view emails as my ASP.NET MVC 3 application sends them out. It would nice to be able to do the same one a testing server with the ability for me or a colleage to view messages being generated on that remote testing server.
If smtp4dev can't do it are there any other tools that can? I know it is possible to output files to a share via ASP.NET configuration, but I find smtp4dev to be a much more user friendly experience...
It sounds like you need to access you local smtp4dev service from a hosted instance of your project. You have several options:
Personally, I use a gmail account for doing this - you're limited to 100 emails per day.
Port forward your local smtp4dev service - find the IP address of the computer it's runnning on, the port the service operates on (SMTP port), go to your router and add the port forwarding rule / Virtual Server. It's possible that smtp4dev only bind to the loopback interface, in which case port forwarding won't work. You should also make sure the firewall exception is added for the port or program.
Your hosting might already have an SMTP server you can use
You could use a public SMTP server - mail.{someisp}.com
In any case, if you're a bit more specific, we will be able to help you further.
I am in the process of creating a Ruby on rails portal
This portal requires a lot of data feeding by the site owner's back-office personnel.
My client has this problem :
the office staff should not be able to access the back office interface from any other than his office computers
I have no idea how to achieve this. Is there a method for this?
Thanks in advance.
Edit:
Is tracking the Mac address a good solution.? is it possible if a ok?
I don't think that you should do anything in rails - this should be configured elsewhere. If rails is running on Apache then see mod_access.
The best way to set this up is to have the app hosted INSIDE the organisation's firewall. Best option - server lives inside the company on a subnet isolated entirely from direct internet access.
If you currently host outside the company, you can set up a firewall that prevents access from unknown IP addresses. You would only accept requests that come from the company's IP ranges. Ideally, you do this at the host/operating system level.
If that can't work, you can do add to your Rails authentication - detect the IP address of the request and if it is not in the company range, prevent access.
found a solution. Using a java applet one can access the machine's hardware details including MAC address. am using this idea.
I'm doing some page scraping for a client and need to connect to their
vpn server. So I have the vpn client running on my linux box, and this
creates a new interface, say ppp0. Now, when I run Mechanize/open-uri,
etc. I need to be able to bind specifically to this particular
interface, because the other interfaces are to the internet in general.
How do I do this?
Thanks
If what you are connecting to over the VPN isn't also available over the open internet you shouldn't have to do anything and the internal TCP/IP networking stack should sort out the correct interface automatically.