Well, lets say you type in
http://eschwartz.duckdns.org:4567 -- the external port is "4567".
But in calibre, the server is set to start on
http://192.168.0.254:8080 -- the internal port is "8080".
So in the router settings, just create
a rule for machine "192.168.0.254", sending all router traffic on
external port "4567" to go to
internal port "8080", on machine "192.168.0.254" of course.
Obviously, fill in your own values instead.