переадресация порта ssh из обратного прокси-сервера traefik на докере в контейнер k3s
Я использую кластер k3s (1 главный + 2 рабочих) и контейнер Docker traefik на одном хосте (главном). Докер-контейнер traefik на самом деле выполняет работу обратного прокси-сервера для tls, который уже работает на портах 80 и 443 для моих разных поддоменов. Я тоже пытаюсь заставить ssh работать (только для одного поддомена), но пока безуспешно.
- порт 22 открыт через разрешение ufw (в Ubuntu 22.04)
- Правила traefik установлены следующим образом:
tcp:
routers:
giti-ssh:
entrypoints:
- "https" # tried also with a ssh entryoint
rule: "HostSNI(`*`)"
tls: {}
service: giti-ssh
services:
giti-ssh:
loadBalancer:
servers:
- address: "10.42.0.232:22"
- k3s использует flannel и metallb, где диапазон внешних IP-адресов находится в диапазоне 10.42.0.230-250.
- ip a показывает (интересные части):
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:19:ea:c3 brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet "private"/32 metric 100 scope global dynamic ens192
valid_lft 36147sec preferred_lft 36147sec
inet 10.42.0.200/32 scope global ens192
valid_lft forever preferred_lft forever
inet6 "private"/64 scope link
valid_lft forever preferred_lft forever
3: br-5014eb2ffdf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:7e:ab:72:98 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-5014eb2ffdf2
valid_lft forever preferred_lft forever
inet6 fe80::42:7eff:feab:7298/64 scope link
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:a5:03:77:2c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
7: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether 42:1b:d3:49:d3:6b brd ff:ff:ff:ff:ff:ff
inet 10.42.0.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::401b:d3ff:fe49:d36b/64 scope link
valid_lft forever preferred_lft forever
8: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
link/ether e2:27:27:96:96:7e brd ff:ff:ff:ff:ff:ff
inet 10.42.0.1/24 brd 10.42.0.255 scope global cni0
valid_lft forever preferred_lft forever
inet6 fe80::e027:27ff:fe96:967e/64 scope link
valid_lft forever preferred_lft forever
- контейнеры настроены, и служба для ssh прослушивает порт 22 как тип: LoadBalancer
- Я могу подключиться к этому контейнеру через другую службу и IP-адрес на порту 443 от обратного прокси-сервера traefik, но мне чего-то не хватает для порта 22, и я думаю, что это как-то связано с traefik HostSNI или, может быть, с iptables....
- версии:docker traefic: последняя (только для тестирования, я собираюсь использовать версию с тегами..)k3s: v1.24.6+k3s1
Я также не могу подключиться через 1932/udp (minecraft), поэтому полагаю, что запускаю traefik на s.th. иначе http(s) сложнее....
Можете дать мне подсказку, как этого добиться.
Заранее спасибо! Джим