Hello, everyone!

I am running I2P and would like to have it port-forwarded to help out the network. Even though I have port-forwarded both UDP and TCP, it always indicates “firewalled” or “symmetric NAT.” As far as I am aware, I do not have a symmetric NAT. I run many other port-forwarded services without any issues, some publicly, so I am not sure what the specific issue with I2P is.

EDIT: After some more digging i managed to fix the issue while using docker. For some reason you need to add the environmental variable EXT_PORT to the compose file like so

services:
    i2p:
        image: geti2p/i2p:latest
        environment:
            - EXT_PORT=XXXX <Make this the same port as the public UDP/TCP port>
        volumes:
            - /XXX/I2P-data/i2pconfig:/i2p/.i2p
            - /XXX/I2P-data/i2ptorrents:/i2psnark
        ports:
            - 4444:4444
            - 6668:6668
            - 7657:7657
            - XXXX:XXXX
            - XXXX:XXXX/udp
  • 12510198@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 days ago

    Is your I2P router running in a container like Docker or systemd-nspawn? I had some issues with this error back when I ran my router in a systemd-nspawn container with VirtualEthernet=yes.

    But id shutting down the I2P router and running something different on the same port like an HTTP server, and trying to access it from a vpn or tor or something and make sure your ISP isnt doing anything weird on this specific port.

    And if you are using i2pd, you can goto the webconsole and go inside “Router Commands” and click “Run peer test” to have it test again. Im not sure how to do this in Java I2P tho.

    • kylian0087@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      11 days ago

      Yes, I am running I2P in docker with docker compose. I can run other things on this port with a container just fine and access it like a simple nginx page or something no issues their. As far as i can tell i have no blocked or weird things going on with any port.

      for reference here is the compose, I redacted some info with XXX.

      
      services:
          i2p:
              image: geti2p/i2p:latest
      
              volumes:
                  - /XXX/I2P-data/i2pconfig:/i2p/.i2p
                  - /XXX/I2P-data/i2ptorrents:/i2psnark
              ports:
                  - 4444:4444
                  - 6668:6668
                  - 7657:7657
                  - XXX:XXXX
                  - XXX:XXX/udp    
      
      • 12510198@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 days ago

        I’m not very familliar with Java I2P, but I took a look at the documentation for Docker, and I didnt see anything about this issue, but I did have the same issue with i2pd in a container. I would try installing it manually and running it outside of the container.

        If you need the bind mount feature from Docker, and you are on a systemd system, I recommand using systemd’s PrivateMounts feature. It can be added in a dropin file that can be created with the command systemctl edit i2p.service, the i2p.service may be different depending on your distro, but for Java I2P’s package on Arch its just i2p.service, but you can add the following in a dropin file to get the same private mounts just for your I2P router:

        [Service]
        PrivateMounts=yes
        BindPaths=/XXX/i2pconfig:/i2p/.i2p
        BindPaths=/XXX/I2P-data/i2ptorrents:/i2psnark
        

        You might have to mess around with file permissions depending on who you run your I2P router as.

        Sorry I dont have a better solution, I dont know much about Docker. But I think the developer of the Java I2P router is on r/i2p on reddit, and I think you can find him on http://i2pforum.i2p/, he prolly knows a whole lot more about Java I2P and the Docker image than I do.

        • kylian0087@lemmy.dbzer0.comOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          11 days ago

          I don’t see a use for the PrivateMounts it over complicates things in this case and doesn’t really add anything. just mounting the volumes shouldn’t cause any issues like this. I did run I2P in a VM instead of a container in the past but it hat the same issue.

          I will check out http://i2pforum.i2p/. I didn’t go to reddit but lemmy as i don’t like reddit since its downfall last year.