我在Digital Ocean Docker液滴上设置了Splash . 我的目的是使用SSH隧道发送请求并获得结果 . 我不希望其他任何人都能使用此服务 .

我按照Splash说明安装了Splash . 这会在服务器上设置UFW防火墙,除了22(SSH),80(http)和443(https)之外,所有端口都被阻止 . 我跑UFW拒绝访问80,443,8050和5023. ufw状态的结果如下:

动作来自22 LIMIT Anywhere 2375 / tcp ALLOW Anywhere 2376 / tcp ALLOW Anywhere 80 DENY Anywhere 443 DENY Anywhere 8050 DENY Anywhere 22(v6)LIMIT Anywhere(v6)2375 / tcp(v6)ALLOW Anywhere(v6)2376 / tcp( v6)ALLOW Anywhere(v6)80(v6)DENY Anywhere(v6)443(v6)DENY Anywhere(v6)8050(v6)DENY Anywhere(v6)

当我在桌面上访问浏览器并输入:

http://:8050 / render.html?url = http://yahoo.com

该服务返回呈现的网页 .

为什么这不被阻止?

EDIT 我找到了答案 . Docker直接在iptables上进行更改,这些更改未显示为ufw status .

根据Splash文档,可以使用以下命令启动Splash:

docker run -p 8050:8050 -p 5023:5023 scrapinghub / splash

但是,如果您启动它:

docker run -p 127.0.0.1:8050:8050 -p 127.0.0.1:5023:5023 scrapinghub / splash

它现在只在本地提供 . 有关更多详细信息,请参阅Uncomplicated Firewall (UFW) is not blocking anything when using Docker