I’ve been trying to figure this out off and on for months without any luck. This is my first homelab setup in a while. I have Proxmox running a few VMs, one is Truenas with some drives in direct passthrough. I also have a Proxmox container running Docker which is running a few things, Traefik being one of them.

I’ve got http/https working and figure out LetsEncypt certs via DNS checks through blood, sweat, and tears, but I cannot – for the life of me – figure out how to get Traefik to handle smb for that Truenas server so I don’t have to have 2 different DNS entries (1 pointing to Traefik for web and one pointing right at the VM for smb).

I found the ports Truenas claims to use for smb (and other services) here and how to capture TCP and UDP entrypoints on Traefik here, but I can’t seem to find the right combo for my Docker compose and Traefik setup.

Anybody else figure this out?

edit: My fat thumbs on mobile create a lot of typos. I also added the entrypoints documentation URL

  • Nick
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    I’m not sure if you can proxy smb as it’s not http/s data. If using NGiNX you could use something like the stream config, but there’s not really an advantage.

    • BanditMcDougal@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I’m not sure that’s right, in the routers section of the Traefik docs they say…

      UDP routers can only target UDP services (and not HTTP or TCP services).

      Feels possible, just not widely documented. I could be completely wrong, though.

      • Nick
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Oh ok. That’s awesome. I didn’t know it could do UDP/TCP proxying. That’s awesome.

  • ramielrowe@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I have a feeling routing SMB traffic through Traefik is going to be a performance and latency nightmare. Is your TrueNAS VM’s network interface bridged to your home network? If so, use a static IP and just have clients connect directly. If not, your best bet is likely iptables NAT to forward a port from your Proxmox servers IP to the TrueNAS VM.

    • BanditMcDougal@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I’ve got a static IP for Truenas now with an internal DNS entry pointing directly to it for smb and another DNS entry pointing to Traefik for the web UI. Annoying to have 2 names for it and was hoping to not have to, but this may be where/how things stay.

      • ramielrowe@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Annoying yes, but I’d argue that’s likely the simplest and most performant approach. At best (IPTables NAT), you’d be adding in an extra network hop to your SMB connections which would effect latency, and SMB is fairly latency sensitive especially for small files. And at worst (Traefik), you’d adding in a user-space layer 7 application that needs to forward every bit of traffic going over your SMB connection.

    • ramielrowe@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      1 year ago

      PS. Also to confirm since you mention LetsEncrypt, you aren’t planning to expose your smb server over the internet are you?

  • huskypenguin
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I have never heard of running SMB through a reverse proxy, and I don’t think it’s a good idea. Just use a vpn to your network with a direct connection, or better yet deploy a nextcloud instance and use that.