How can I make port rerouting work locally?












1















Behold this command:



iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080



I use that to reroute any incoming traffic from 80 to 8080, because the Apache 2 server on that computer runs as an unprivileged user and only root can open well known ports. It is saved in /etc/iptables/rules.v4 and it works, if I open the web site on a remote computer. The virtual host is bound to 192.168.X.X:8080.



However, if I ssh into that server and open a browser with X11Forwarding active, entering the IP into the address bar won't open the web site, but the connection will time out instead. Only if I add :8080 to the address it works. So bottom line, the port routing is not working when opened on the same computer.



My question is: How do I need to modify or add a routing directive, so this will work locally as well?










share|improve this question



























    1















    Behold this command:



    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080



    I use that to reroute any incoming traffic from 80 to 8080, because the Apache 2 server on that computer runs as an unprivileged user and only root can open well known ports. It is saved in /etc/iptables/rules.v4 and it works, if I open the web site on a remote computer. The virtual host is bound to 192.168.X.X:8080.



    However, if I ssh into that server and open a browser with X11Forwarding active, entering the IP into the address bar won't open the web site, but the connection will time out instead. Only if I add :8080 to the address it works. So bottom line, the port routing is not working when opened on the same computer.



    My question is: How do I need to modify or add a routing directive, so this will work locally as well?










    share|improve this question

























      1












      1








      1








      Behold this command:



      iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080



      I use that to reroute any incoming traffic from 80 to 8080, because the Apache 2 server on that computer runs as an unprivileged user and only root can open well known ports. It is saved in /etc/iptables/rules.v4 and it works, if I open the web site on a remote computer. The virtual host is bound to 192.168.X.X:8080.



      However, if I ssh into that server and open a browser with X11Forwarding active, entering the IP into the address bar won't open the web site, but the connection will time out instead. Only if I add :8080 to the address it works. So bottom line, the port routing is not working when opened on the same computer.



      My question is: How do I need to modify or add a routing directive, so this will work locally as well?










      share|improve this question














      Behold this command:



      iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080



      I use that to reroute any incoming traffic from 80 to 8080, because the Apache 2 server on that computer runs as an unprivileged user and only root can open well known ports. It is saved in /etc/iptables/rules.v4 and it works, if I open the web site on a remote computer. The virtual host is bound to 192.168.X.X:8080.



      However, if I ssh into that server and open a browser with X11Forwarding active, entering the IP into the address bar won't open the web site, but the connection will time out instead. Only if I add :8080 to the address it works. So bottom line, the port routing is not working when opened on the same computer.



      My question is: How do I need to modify or add a routing directive, so this will work locally as well?







      networking iptables debian-stretch






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 8 at 16:36









      BadSnowflakeBadSnowflake

      489519




      489519






















          1 Answer
          1






          active

          oldest

          votes


















          1














          The reason this did not work is because packages from local sources do not got through the routing stage, since there is no routing needed for local packages. Therefore, this rule does not apply. To route packages coming from local source, one needs to send it directly to OUTPUT:



          iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080





          share|improve this answer























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "3"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1391941%2fhow-can-i-make-port-rerouting-work-locally%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            The reason this did not work is because packages from local sources do not got through the routing stage, since there is no routing needed for local packages. Therefore, this rule does not apply. To route packages coming from local source, one needs to send it directly to OUTPUT:



            iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080





            share|improve this answer




























              1














              The reason this did not work is because packages from local sources do not got through the routing stage, since there is no routing needed for local packages. Therefore, this rule does not apply. To route packages coming from local source, one needs to send it directly to OUTPUT:



              iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080





              share|improve this answer


























                1












                1








                1







                The reason this did not work is because packages from local sources do not got through the routing stage, since there is no routing needed for local packages. Therefore, this rule does not apply. To route packages coming from local source, one needs to send it directly to OUTPUT:



                iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080





                share|improve this answer













                The reason this did not work is because packages from local sources do not got through the routing stage, since there is no routing needed for local packages. Therefore, this rule does not apply. To route packages coming from local source, one needs to send it directly to OUTPUT:



                iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 22 hours ago









                BadSnowflakeBadSnowflake

                489519




                489519






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Super User!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1391941%2fhow-can-i-make-port-rerouting-work-locally%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to reconfigure Docker Trusted Registry 2.x.x to use CEPH FS mount instead of NFS and other traditional...

                    is 'sed' thread safe

                    How to make a Squid Proxy server?