为什么阻塞阀在 Win10 上无法正常工作?
Why a blocking valve, does not work as expected on Win10?
我试图阻止从笔记本电脑外部访问我的 REST 开发 - 应用 Tomcat。我发现有前途的解决方案是 :
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1"/>
它适用于 Linux:目的是,localhost:8080
访问本地 Tomcat 安装,而任何访问<my-laptop-IP>:8080
来自 Intranet 的任何地方都将被拒绝。
不幸的是,这在我的 Buster 笔记本电脑(Linux VirtualBox 客人)上运行良好,但在我的 Win10 来宾安装或本机 Win10 笔记本电脑:Windows 上的阀门阻止 localhost:8080
访问 Tomcat 也一样,虽然我认为 allow
属性应该允许它。 (意味着我的 REST 开发人员在 Win10 上被那个阀门阻止了。)
我的问题是:为什么上述阀门在 Win10 安装上的表现不如预期?
p.s。我用 tomcat-9 和 tomcat-10.
进行了测试
在大多数现代 OS 中,localhost
首先解析为 IPv6 地址 ::1
,然后解析为 IPv6 地址 127.0.0.1
。
根据您使用的连接器,localhost
的 IPv6 地址可能会以缩写形式 ::1
或完整形式 0:0:0:0:0:0:0:1
出现,因此您的正则表达式应允许这两种表示形式:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
我试图阻止从笔记本电脑外部访问我的 REST 开发 - 应用 Tomcat。我发现有前途的解决方案是
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1"/>
它适用于 Linux:目的是,localhost:8080
访问本地 Tomcat 安装,而任何访问<my-laptop-IP>:8080
来自 Intranet 的任何地方都将被拒绝。
不幸的是,这在我的 Buster 笔记本电脑(Linux VirtualBox 客人)上运行良好,但在我的 Win10 来宾安装或本机 Win10 笔记本电脑:Windows 上的阀门阻止 localhost:8080
访问 Tomcat 也一样,虽然我认为 allow
属性应该允许它。 (意味着我的 REST 开发人员在 Win10 上被那个阀门阻止了。)
我的问题是:为什么上述阀门在 Win10 安装上的表现不如预期?
p.s。我用 tomcat-9 和 tomcat-10.
进行了测试在大多数现代 OS 中,localhost
首先解析为 IPv6 地址 ::1
,然后解析为 IPv6 地址 127.0.0.1
。
根据您使用的连接器,localhost
的 IPv6 地址可能会以缩写形式 ::1
或完整形式 0:0:0:0:0:0:0:1
出现,因此您的正则表达式应允许这两种表示形式:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>