IPV6开启状态下,tomcat监听IPV4端口

解决本地服务开启但他人无法访问的问题
本文解决了一个在本地服务开启后他人无法访问的问题,通过检查防火墙规则、修改Tomcat配置文件、添加防火墙规则等步骤,最终使他人能够正常访问。

  今天被人问了一个“奇怪”的问题,说本地服务开启,自己能访问,别人访问不了,遇到这种问题,一般是防火墙规则导致的,所以我先建议关闭了防火墙,结果还是不能正常访问,于是又想起了mysql在开启IPV6的时候,如果想监听IPV4端口需要在配置文件中单独配置,问题终于解决。

    第一,查看本地的监听【windows下】:

C:\Users\Long80A>netstat -an | findstr 80
  TCP    10.250.2.190:49328     202.39.170.15:8080     ESTABLISHED
  TCP    10.250.2.190:51572     202.226.89.167:80      CLOSE_WAIT
  TCP    10.250.2.190:54734     202.79.157.251:80      ESTABLISHED
  TCP    10.250.2.190:54881     202.176.31.204:80      CLOSE_WAIT
  TCP    10.250.2.190:55219     202.60.153.98:80       ESTABLISHED
  TCP    10.250.2.190:55803     202.28.226.40:80        CLOSE_WAIT
  TCP    10.250.2.190:55854     202.188.46.24:80       TIME_WAIT
  TCP    10.250.2.190:55855     202.188.46.24:80       TIME_WAIT

TCP    [::]:80                [::]:0                 LISTENING
TCP    [::]:8009              [::]:0                 LISTENING

监听的TCP    [::]:80                [::]:0                 LISTENING显示监听了IPV6格式的端口。

【查看本地是否开启了IPV6,ipconfig /all,如果此命令中有本地链接 IPv6 地址. . . . . . . . : fe80::d423:34af:7a7c:c995%10,说明已经开启了IPV6】

第二,修改tomcat的配置文件:

找到:

    <Connector port="80" maxHttpHeaderSize="8192" 
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

修改为:

    <Connector port="80" maxHttpHeaderSize="8192" address="0.0.0.0"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

第三,重启tomcat查看监听:

C:\Users\Long80A>netstat -an | findstr 80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING

第四,添加一个允许访问80端口的防火墙规则

开始-控制面板-防火墙-高级设置-入站规则-新建规则,选择端口,TCP,80,然后一直下一步。

第五,从其他机器就能正常访问了

curl -I http://10.250.2.190
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2013 02:48:33 GMT

调用 `_this.$flexTabs.openIframe()` 方法时,若需要在新打开的 tab 页面上添加遮罩层,可以通过在打开 tab 时动态插入遮罩元素的方式实现。遮罩层的实现依赖于 DOM 操作,确保遮罩层的 `z-index` 高于 iframe 的 `z-index`,并且设置为 `position: absolute`,以覆盖在 iframe 上方。 ### 实现方式 在调用 `openIframe` 方法时,可以在打开 tab回调中插入遮罩层。例如: ```javascript _this.$flexTabs.openIframe({ url: 'https://example.com', title: '示例页面', callback: function () { // 获取当前 tab 的容器 const tabContainer = document.querySelector('.flex-tabs-content .active'); if (tabContainer) { // 创建遮罩层 const overlay = document.createElement('div'); overlay.style.position = 'absolute'; overlay.style.top = '0'; overlay.style.left = '0'; overlay.style.width = '100%'; overlay.style.height = '100%'; overlay.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; overlay.style.zIndex = '9999'; overlay.style.display = 'flex'; overlay.style.justifyContent = 'center'; overlay.style.alignItems = 'center'; overlay.style.color = '#fff'; overlay.innerText = '加载中...'; // 将遮罩层插入到 tab 容器中 tabContainer.style.position = 'relative'; // 确保遮罩层定位正确 tabContainer.appendChild(overlay); // 可选:在 iframe 加载完成后移除遮罩层 const iframe = tabContainer.querySelector('iframe'); if (iframe) { iframe.onload = function () { setTimeout(() => { overlay.remove(); }, 1000); // 假设加载完成后 1 秒移除遮罩 }; } } } }); ``` ### 样式与交互控制 遮罩层可以自定义样式,例如设置背景透明度、文字提示、动画效果等。此外,还可以绑定遮罩层的交互事件,例如点击关闭遮罩或执行其他逻辑: ```javascript overlay.addEventListener('click', function () { overlay.remove(); }); ``` ### 注意事项 - **DOM 定位**:确保遮罩层的父容器设置了 `position: relative`,否则遮罩层的 `position: absolute` 无法正确定位。 - **事件拦截**:由于遮罩层的 `z-index` 高于 iframe,因此所有事件(如点击、鼠标移动等)都会首先被遮罩层捕获。如果需要将某些事件传递给 iframe,可以通过 JavaScript 手动触发 iframe 内部的事件处理逻辑。 - **性能优化**:遮罩层的存在可能会对页面性能产生一定影响,尤其是在频繁操作 iframe 的情况下。因此,建议在不需要遮罩层时及时移除或隐藏它。 通过上述方法,可以在调用 `_this.$flexTabs.openIframe()` 时动态添加遮罩层,并实现对遮罩层的样式控制和交互处理[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值