我有一台 Shiny 服务器监听端口 3838(Centos 6 环境)。我想阻止直接访问
http://www.mywebsite.com:3838
这会显示 Shiny 文件和目录。每当我尝试通过 htaccess 阻止访问时,我最终都会阻止对该站点的所有访问。有什么方法可以完成这项任务吗?我仍然需要在内部打开端口,以便可以请求 Shiny 应用程序。Sam
答案1
你可以做几件事,首先是阅读文档对于配置选项它可能确实很有帮助。
在文档中你会注意到该directory_index
指令。
启用后,如果客户端请求目录且不存在 index.html 文件,则会自动创建目录内容列表并返回给客户端。如果自定义配置文件中不存在此指令,则默认行为是禁用目录索引。但是,如果根本没有配置文件(换句话说,默认配置文件已启用它),则会启用它。
因此,看起来您没有配置文件,或者 directory_index 已明确启用。这导致了几种潜在的解决方案。
- 验证配置文件的存在并确保您正在使用它。
- 确保配置文件(如果正在使用)的 directory_index 定义正确。
- 在目录中添加一个index.html文件(这样就不需要生成目录索引了)。
答案2
如果iptables
您可以接受,您可以按如下方式阻止外部流量:如果您的内部网络是 192.168.1.0/24,您可以执行以下操作:
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 3838 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 3838 -j DROP
这首先授予内部网络对该端口的访问权限,然后拒绝其他任何人。该DROP
选项导致它简单地丢弃数据包,从而导致连接请求超时,如果您想要更友好/更明显,您可以改用REJECT
。
如果你只需要本地主机访问该端口,你可以127.0.0.1
替换192.168.1.0/24