我在远程服务器上的ubuntu 18上使用docker-compose。使用iptables,我如何阻止从互联网到docker端口的访问,而只允许从该服务器的本地主机访问它?
例如,我想阻止互联网的4150端口。尝试这样做:iptables -A DOCKER-USER -p tcp --dport 4150 -j DROP
不会阻止端口-仍然可以从互联网访问它(不是从服务器机器)。
如何阻止internet访问服务器上的所有端口,但只允许22,80个端口?并保持该端口在服务器的本地主机上可用(例如,从服务器本身)?
发布于 2018-10-16 08:11:56
不是您正在寻找的基于IPTables的解决方案,但更简单的解决方案是只发布到特定的接口,而不是所有的接口。当该接口是环回接口时,例如127.0.0.1,您将只能在本地访问该端口。要执行此操作,请将接口添加到发布规范的开头:
docker run -p 127.0.0.1:4150:4150 ...
...
ports:
- 127.0.0.1:4150:4150
...
至于为什么您尝试使用的命令不起作用,我认为您需要包含一个-m tcp
来匹配TCP端口号:
iptables -A DOCKER-USER -p tcp -m tcp --dport 4150 -j DROP
https://stackoverflow.com/questions/52812543
复制相似问题