Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
dynip(8)		     System Manager's Manual			dynip(8)

NAME
     dynip -- Dynamic IP Address Updater.

DESCRIPTION
     dynip  is	a  daemon that monitors your host system ISP assigned dynamic IP
     address. If it changes, dynip automatically  updates  the	dynamic  DNS  IP
     address  at  your	dynamic DNS hosting provider then posts an informational
     message to the host system log followed by sending an  informational  email
     to user root.

     The  dynip  daemon  and  the daily script are very simple Bourne Shell type
     scripts containing self documenting embedded comments. They use the "fetch"
     command to issue the standard browser style URL format used by most dynamic
     DNS hosting providers for the purpose of actual updating the registered  IP
     address with the new IP address. There are some small variations in the URL
     format depending on the dynamic DNS hosting provider being used.

     On purpose the new IP address is not included in the standard browser style
     URL  format  because  the dynamic DNS hosting providers update process will
     use the IP address of the sending update request as  the  value  to  update
     their records to.

Mandatory requirements.
     The  host	that is running dynip "MUST" be cabled directly to the modem and
     be using the public routable dynamic IP address assigned by the ISP.

     Be aware some modems with built in routers do not pass the public	routable
     dynamic IP address assigned by the ISP. The router assigns it's own private
     IP address and considers everything downstream from it as it's private LAN.
     dynip will not be usable in this situation.

How does it work.
     The  /usr/local/etc/rc.d/dynip  script  is automatically launched at system
     boot time and system shutdown time to start and stop the dynip daemon.  The
     "service  dynip  start"  and  "service  dynip stop" console commands can be
     manually issued for user control between boots.

     The /usr/local/bin/dynip script is the running  daemon.  This  script  runs
     continually  and  on  a  user defined timed cycle will check the dynamic ip
     address of the interface facing the public internet to determine if it  has
     changed.  If it has changed the browser URL format is used to update the IP
     address at the dynamic DNS hosting provider  that	is  hosting  your  Fully
     qualified domain name to the newly changed ip address.

     Most DNS hosting sites that provide dynamic DNS services use a variation of
     the default browser URL format used here. A simple user substitution to the
     "fetch" command for the browser URL format used by your dynamic DNS hosting
     provider will allow this script to work for you.

     The  /usr/local/etc/periodic/daily/dynip script will force an update of the
     hosts IP address at the dynamic DNS hosting provider as part of the  normal
     operating system daily reporting system.

How to setup.
       1. Edit /etc/rc.conf and add this  enable_dynip="YES"

       2. The elapse time between checks of the current IP address defaults to
	  every 15 minutes. You can select a different elapse time by editing
	  the  /usr/local/bin/dynip script and following the comments there.

       3. You must edit the /usr/local/bin/dynip script and the
	  /usr/local/etc/periodic/daily/dynip script and make the same
	  changes to the URL variables which are unique to the browser URL
	  format used by your dynamic DNS hosting provider.

       4. A system boot is not required to activate the dynip daemon. Issue
	  "service dynip start" command from the console command line.

How to do initial testing with your dynamic DNS hosting provider.
     Even though some browser URL formats are provided in the next section, over
     time things change and the browser URL formats may change. Once you sign up
     with  your  dynamic  DNS  hosting	provider, you should inquire about their
     browser URL format used  for  remote  IP  address	update.  Sometimes  this
     information  is  documented  under  Unix software client programs or remote
     client programs. Compare their information to the browser	URL  formats  in
     the  next	section  and choose a format that matches best. Many dynamic DNS
     hosting provider  are  moving  to	a  authentication  token  for  increased
     security so choose that if available.

     Copy	the	 /usr/local/etc/periodic/daily/dynip	  script      to
     /usr/local/bin/dynip_daily  then copy and paste the best  matching  browser
     URL   format   from   the	 next	section   into	 the   development  copy
     /usr/local/bin/dynip_daily and edit and execute that copy until the  update
     works.

     When  it's working, copy it back to /usr/local/etc/periodic/daily/dynip and
     then copy the same working changes to the /usr/local/bin/dynic script.

     To test the /usr/local/bin/dynic script, first enable the 10  second  cycle
     timer option in the script.

     Deleteing	the  /usr/local/etc/dynic  file which holds the saved IP address
     before issuing the  "service dynip start"	console command  will  force  an
     update  to  your  dynamic	DNS hosting provider to occur. You have to issue
     "service dynip stop" before  making  changes  to  the  /usr/local/bin/dynic
     script.

     When    you   have   both	 the   /usr/local/bin/dynic   script   and   the
     /usr/local/etc/periodic/daily/dynip scripts working correctly, make backups
     and save the backup some where you can access if  your  system  dies.  Also
     NEVER  reinstall  the dynip port/package again as it will install over your
     working scripts losing all your customization work.

Some browser URL's used by dynamic DNS hosting sites.
       1.  [easydns.com]
       ######################################################################
       #
       # For easydns.com, a pay for Dynamic DSN service
       #
       # The authentication token value is generated after you sign up, and
       # purchase a DNS plan. A login authentication token is mandatory. See
       # https://kb.easydns.com/knowledge/dynamic-dns/	for details.
       #
       ip="&myip=0.0.0.0"    # set to offline state
       ip1="&myip=1.1.1.1"    # set to detect pc on LAN
       loginid="xxxxx"
       token="yyyyyyyyyyyyyyyy"
       hostname="Your-domain-name"
       login="https:${loginid):${token)"
       website="@api.cp.easydns.com/dyn/generic.php?"

       # For testing reset to not point at this host
       #url="${login)$website${hostname)${ip}"

       # For normal update

       url="${login)$website${hostname)"

       #
       ######################################################################

       2.   [freedns.afraid.org]
       ######################################################################
       #
       # For freedns.afraid.org NO cost Free Dynamic DSN service
       #
       # The authentication_token value is generated after you login and
       # select a existing domain to add your sub-domain prefix to. Review
       # Step 4 of this guide https://freedns.afraid.org/guide/dd-wrt-v2 for
       # details.
       #
       ip="?ip=127.0.0.1"
       authentication_token="yyyyyyyyyyyyyy"
       website="http://sync.afraid.org/u/"

       # For testing reset to not point at this host
       #url="$website$authentication_token$ip"

       # For normal update
       url="$website$authentication_token"

       #
       ######################################################################

       3.   [changeip.com]
       ######################################################################
       #
       # For changeip.com NO cost Free Dynamic DSN service
       # The values used to populate loginid & passwd are the values you used
       # to sign up with.
       #
       loginid="&u=xxxxxxx"
       passwd="&p=yyyyyyyy"
       hostname="&hostname=fbsd.dynamic-dns.net"
       ip="&set=127.0.0.1"
       website="https://nic.changeip.com/nic/update?cmd=update"

       # For testing reset to not point at this host
       #url="${website}${loginid}${passwd}${hostname}${ip}"

       # For normal update
       url="${website}${loginid}${passwd}${hostname}"

       #
       ######################################################################

       4.   [no-ip.com]
       ######################################################################
       #
       # For no-ip.com NO cost Free Dynamic DSN service
       #
       # Note: When you first sign up your email address is your login id.
       # During a later login you will be asked to fill out personal info and
       # there you are asked to enter a login NAME. This "login NAME" is the
       # value you use to populate the login_name variable below. And the
       # sign up password value is used to populate login_password.
       #
       # Using the login_name and login_password will pass that
       # information enclosed in the https protocol which is secure.
       #
       ip="&myip=127.0.0.1"
       login_name="xxxxxxxx"
       login_password="yyyyyyyy"
       hostname="zzzzzzzzzz"

       token="https://${login_name}:${login_password}"
       website="@dynupdate.no-ip.com/nic/update?hostname="

       # For testing, reset ip to not point at this host
       #url="${token}${website}${hostname}${ip}"

       # For normal update
       url="${token}${website}${hostname}"

       #
       ######################################################################

       5.   [namecheap.com]
       ######################################################################
       #
       # For namecheap.com pay for hosting services.
       #
       # A login authentication token is the mandatory password.
       # You generate it from the c-panel after sign up & login.
       #
       password="&password=yyyyyyyyyyyyy"
       website="https://dynamicdns.park-your-domain.com/update?"
       dyn_host="host=xxxxxx&domain=zzzzzzz"
       url="$website$dyn_host$password"

AUTHOR
     Joe Barbish <dynip@a1poweruser.com>

FreeBSD ports 15.quarterly	November 10, 2017			dynip(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dynip&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help