我需要在Traefik后面设置Gitlb。
除了通过命令行对应用程序进行身份验证外,一切正常 - 我不知道如何通过traefik公开端口22。
知道如何设置吗?如何公开docker容器的端口22(通过traefik)?
我将默认端口从22更改为10022.
我通过netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1132/sshd
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 1126/systemd-resolv
tcp6 0 0 :::22 :::* LISTEN 1132/sshd
tcp6 0 0 :::443 :::* LISTEN 1590/docker-proxy
tcp6 0 0 :::10022 :::* LISTEN 1440/docker-proxy
tcp6 0 0 :::5355 :::* LISTEN 1126/systemd-resolv
tcp6 0 0 :::80 :::* LISTEN 1602/docker-proxy
tcp6 0 0 :::8080 :::* LISTEN 1578/docker-proxy
udp 0 0 127.0.0.53:53 0.0.0.0:* 1126/systemd-resolv
udp 0 0 0.0.0.0:68 0.0.0.0:* 864/dhclient
udp 0 0 0.0.0.0:5355 0.0.0.0:* 1126/systemd-resolv
udp6 0 0 :::5355 :::* 1126/systemd-resolv
我不明白为什么10022连接到docker-proxy。
当我尝试:
git push --set-upstream origin master
ssh: connect to host git.myserver.com port 10022: Connection refused
fatal: Could not read from remote repository.
非常感谢
答案 0 :(得分:2)
正如BMitch所说,如果不是HTTP,traefik不会处理TCP流量。 (SSH不是HTTP)。
请参阅此讨论:https://github.com/containous/traefik/issues/10
我建议您配置网络资源,以便将:22
的流量直接路由到容器。
答案 1 :(得分:1)
Traefik是HTTP反向代理,ssh不是HTTP协议。因此,您只需要在主机上未使用的端口上发布容器的ssh端口。