How do I redirect one port to another on a local computer using iptables?
Well, I guess it's simply to write a DNAT rule:
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx
--dport 4321 -j DNAT --to 127.0.0.1:1234
As it's in the prerouting chain it should work without interference from the routing. But it seems like an awfully complicated way to solve the problem.
Instead, why don't you simply tell your HTTP server to bind to both ports? As you are on Debian I assume you use Apache. Then it's just adding two Listen directives in the httpd.conf:
Listen 1234
Listen 4321
Note that serving the same content on both ports won't work, as you will have to change all URL's depending on the port the users are connecting on, or all links will be broken...