首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从容器访问主机端口(使用ssh -R绑定)?

如何从容器访问主机端口(使用ssh -R绑定)?
EN

Stack Overflow用户
提问于 2016-09-27 08:57:10
回答 1查看 1.3K关注 0票数 1

使用Docker1.12.1,我面临一种奇怪的行为,试图访问用ssh -R创建的主机端口。

基本上,我尝试从运行在服务器上的码头容器访问本地计算机上运行在端口12345上的服务。

我打开了与ssh -R *:12345:localhost:12345 user@server的ssh连接,打开server上的端口12345,该端口在本地机器上转发到端口12345

现在,当我尝试容器内的curl https://172.17.42.1:12345 (172.17.42.1是从码头容器访问对接主机的IP )时,我得到:

代码语言:javascript
运行
复制
root@f6873fe1109b:/# curl https://172.17.42.1:12345
curl: (7) Failed to connect to 172.17.42.1 port 12345: Connection refused

但在server上,命令curl http://localhost:12345成功(例如。没有拒绝连接)

代码语言:javascript
运行
复制
server$ curl http://localhost:12345
curl: (52) Empty reply from server

我不太明白使用ssh进行的端口绑定与服务器上的nc测试有何不同(它可以工作):

代码语言:javascript
运行
复制
# on server
nc -l -p 12345
# inside a container
root@f6873fe1109b:/# curl http://172.17.42.1:12345
curl: (52) Empty reply from server

注意:容器是用docker run -it --rm maven:3-jdk-8 bash启动的。

如何允许容器访问与ssh绑定相对应的主机端口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-27 10:27:03

来自man ssh

-R . ..。只有在启用服务器的bind_address选项时,才能指定远程GatewayPorts

man sshd_config

GatewayPorts 指定是否允许远程主机连接到为客户端转发的端口。默认情况下,sshd(8)将远程端口转发绑定到环回地址。这将阻止其他远程主机连接到转发的端口。GatewayPorts可用于指定sshd应允许远程端口转发绑定到非环回地址,从而允许其他主机进行连接。该参数可能是“否”,以强制远程端口转发仅对本地主机可用,“是”强制远程端口转发绑定到通配符地址,或“指定客户端”以允许客户端选择将转发绑定到的地址。默认值为“no”.

这意味着默认的sshd服务器安装只允许创建绑定到本地接口的转发。如果您希望允许转发到其他接口,然后循环,则需要将GatewayPorts选项设置为/etc/ssh/sshd_config中的yesclientspecified

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39720341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档