基于Jenkins inbound-agent镜像的Docker Alpine SSH隧道数据库连接问题
Docker容器内SSH隧道端口无法访问问题排查
基于Jenkins inbound-agent的Docker镜像搭建SSH隧道,通过公网SSH服务器连接私网SSH服务器,进而访问仅与该私网服务器连通的保密数据库。该配置在常规Linux虚拟机或物理机上可正常运行,但在Docker容器内完成隧道连接后,数据库端口却无法正常访问。
SSH配置文件内容
/home/jenkins/.ssh/config 内容如下:
HOST * ForwardAgent yes AddressFamily inet HOST public-server ForwardAgent yes Hostname <Public-IP> User ssh StrictHostKeyChecking=no UserKnownHostsFile=/dev/null IdentityFile /home/jenkins/.ssh/id_rsa ControlPath ~/.ssh/public-server-%r@%h:%p ControlMaster auto ControlPersist 30m HOST private-server ForwardAgent yes Hostname 172.0.0.2 User ssh StrictHostKeyChecking=no UserKnownHostsFile=/dev/null IdentityFile /home/jenkins/.ssh/id_rsa ProxyCommand ssh -q -W %h:%p public-server ControlMaster auto ControlPersist 30m HOST db ForwardAgent yes TCPKeepAlive yes ConnectTimeout 5 ServerAliveCountMax 10 ServerAliveInterval 15 Hostname private-server User ssh StrictHostKeyChecking=no UserKnownHostsFile=/dev/null ProxyCommand ssh -A -q public-server -W %h:%p IdentityFile /home/jenkins/.ssh/id_rsa LocalForward *:13369 db:3369 RemoteForward 13368 localhost:13368
连接后端口监听状态
执行 netstat -antp 输出显示端口仅在IPv4所有接口监听(受Docker IPv6限制):
d9977c046374:~$ netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name TCP 0 0 0.0.0.0:13369 0.0.0.0:* LISTEN 15/ssh TCP 0 0 172.17.0.2:57560 <public-server>:22 ESTABLISHED 16/ssh
端口连接测试
尝试连接端口时出现卡顿,但在标准虚拟机或桌面环境中可正常连接:
d9977c046374:~$ telnet localhost 13369 Connected to localhost
请问缺少了什么配置或步骤?
内容的提问来源于stack exchange,提问作者Kalin Borisov
相关产品推荐
相关产品推荐

