本地主机上的双栈 ipv6/ipv4

2023-12-30

我有一个 ipv4 服务器,它只接受本地主机上的连接(使用INADDR_LOOPBACK)。我想将此服务器转换为双栈 ipv6/ipv4。然而,使用in6addr_loopback只接受连接到::1.

我发现我可以同时接受 ipv4 和 ipv6 连接in6addr_any,但由于这也允许从任何地方进行连接,因此对于我的特定情况没有用处。

是否可以绑定到 ipv6 localhost(::1)和 ipv4 本地主机(127.0.0.1) 同时地?


AFAIK,那是不可能的。

您需要做的是创建两个套接字,一个绑定到 INADDR_LOOPBACK,另一个绑定到 in6addr_loopback。然后,您可以使用您选择的多路复用器(poll、select、epoll 等)同时等待它们。

Update

只是想出了一些您可能需要考虑的解决方法。在这两种解决方法中,您都绑定到in6addr_any.

  1. 建立连接后,检查远程地址,如果不是 127.0.0.1 或 ::1,则将其关闭。虽然 IP 地址上的连接行为并不理想(连接被建立/立即关闭而不是被拒绝),但最好的是这可以完全在您的应用程序中完成。
  2. 调整操作系统 IP 堆栈的设置,以拒绝从非环回 IP 到您的端口的连接。这在 Linux 上绝对可行iptables http://en.wikipedia.org/wiki/Iptables。虽然行为更理想,但它需要应用程序外部的配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

本地主机上的双栈 ipv6/ipv4 的相关文章

  • MySQL:从另一台服务器选择

    恐怕我已经知道问题的答案 但我还是会问 当有两台 MySQL 数据库服务器时 我可以访问另一台服务器上存储的数据吗 换句话说 我能以某种方式这样做吗 INSERT INTO table x y z SELECT x y x y FROM o
  • 无法远程连接到Python Socket

    我已经使用 python 套接字和 Tkinter 创建了一个聊天应用程序 它在本地运行得很好 但是客户端无法远程连接到服务器 当我输入我的公共 IP 地址作为主机时 我已经完全端口转发了我的网络并且我知道如何很好地进行端口转发 当我运行在
  • 如何从 kubernetes 集群内部访问主机的 localhost

    在此应用程序中 nodejs pod 在 kubernetes 内部运行 而 mongodb 本身作为 localhost 位于主机外部 这确实不是一个好的设计 但它只适用于开发环境 在生产中 将有一个单独的 mongodb 服务器 因为这
  • 在下载的同时从 UnityWebRequest 获取数据?

    我有这段代码可以进行 REST 调用 public IEnumerator GetCooroutine string route string finalURL URL route UnityWebRequest www UnityWebR
  • Android 中客户端服务器通信的选项

    我目前正处于论文项目的研究阶段 我的项目是一个针对移动设备的订票系统 我选择以 Android 为目标 我预计需要带有中央服务器的客户端 服务器架构 因此目前正在研究 Android 如何与这样的服务器进行通信 服务器将授予客户端访问票务信
  • 如何获取Linux中进程或端口的网络带宽使用情况

    我想获取每个进程的网络带宽使用情况 我找了很多这方面的资料 比如iftop nethogs http nethogs sourceforge net Linux进程浏览器 http sourceforge net projects proc
  • 为什么 localhost 不会在 chrome (OSX) 中路由到 127.0.0.1?

    当我使用 node debug 启动脚本时 它尝试导航到 URL localhost debug port 5858 但找不到那里提供的页面 如果我将 localhost 更改为 127 0 0 1 一切正常 我可以 ping localh
  • 发送 WCF 消息在负载下延迟

    当从自托管 WCF 服务向许多客户端 大约 10 个左右 发送消息时 有时消息的延迟时间比我预期的要长得多 发送到本地网络上的客户端需要几秒钟 有谁知道为什么会这样以及如何解决它 一些背景 该应用程序是股票行情式服务 它从第三方服务器接收消
  • 正则表达式 IPv6 验证和可选的方括号?

    大家好 这里的正则表达式新手 我正在尝试编写一个验证 IPv6 地址的正则表达式 我还没有添加端口部分 我想先让地址部分工作 这是我到目前为止所拥有的 0 9A Fa f 这使得左括号和右括号是可选的 但正如您所看到的 它们是独立可选的 有
  • Elasticsearch:如何查询连接数?

    如何询问我的 Elasticsearch 服务器现在有多少个连接 这与插座数量相同吗 我也不知道如何获得这些数字 这与客户端的数量不同 对吧 因为每个客户端可能打开多个连接 找不到任何相关信息 但我确实发现您可以在 Elasticsearc
  • 基于邻近度的负载均衡

    我正在开展一个项目 我们在世界各地拥有大量 目前为 5 台 服务器 客户端通过集中式代理连接到其中一台服务器 我们知道客户的原籍国 但除此之外一无所知 我们完全控制服务器 因此我们可以获得所需的所有信息 我们不控制客户 他们必须按照标准通过
  • 区分不同的Selenium Grid节点

    我现在正在处理以下问题 我的 Selenium Grid 实例应该连接位于不同位置的几个节点 我想在每个位置运行每个测试 我如何指出 Selenium Grid 应从每个位置选择一个节点并向那里发送测试 我尝试操作浏览器名称或平台 例如将其
  • 根据 TCP 的 C++ 函数

    我正在使用 recv 函数 C 来获取有关网络问题的指示 在这种情况下它返回负值 看这里 https www rfc editor org rfc rfc1122 page 100 https www rfc editor org rfc
  • 如何使用链接本地 IPv6 地址访问 Web 服务器或网站?

    以下是托管 Web 服务器的计算机的 ipconfig 输出 以太网适配器本地连接 连接特定的 DNS 后缀 链路本地 IPv6 地址 fe80 f85b 4256 ee76 24a4 11 IPv4 地址 10 213 254 119 子
  • P2P网络游戏/应用程序:类似“战网”匹配服务器的不错选择

    我正在制作一个网络游戏 1v1 游戏中是 p2p 不需要游戏服务器 然而 为了让玩家能够 找到彼此 而不需要在另一种媒介中协调并输入IP地址 类似于网络游戏的现代时代 我需要有一个协调 匹配服务器 我无法使用常规网络托管 因为 客户端将使用
  • 如何使用 iPhone 将照片上传到服务器?

    我正在编写一个 iPhone 应用程序 它可以拍摄照片然后将其上传到服务器 如何使用 Cocoa 将照片上传到服务器 我想我在某处使用 NSUrl Thanks Header interface EPUploader NSObject NS
  • C# 自动检测代理设置

    C 2008 SP1 我正在使用代码来检测是否已在 Internet 选项 下设置代理 如果有代理 那么我将在我的网络客户端中设置它 所以我只是检查代理的地址是否存在 如果没有 则说明 Web 客户端中没有要设置的代理 这是执行此操作的正确
  • 为什么使用HTTP协议时需要指定端口号?

    即使我们使用HTTP协议 为什么还需要用IP地址指定端口号 例如 http xyz 8080 这到底是什么意思 我们已经知道 在使用 HTTP 时 请求将在端口 80 上提供服务 那么为什么我们要显式指定端口呢 HTTP 的默认端口为 80
  • 我如何知道我的 iOS 应用程序的蜂窝网络访问是否被禁用?

    我有一个 iOS 应用程序 它在应用程序启动时发出一些小型网络请求 资源更新等 如果用户在 iOS 设置中关闭应用程序的蜂窝网络访问 他们每次启动时都会收到 iOS 的有关网络使用情况的提示 有没有办法以编程方式知道此应用程序的蜂窝数据已被
  • 调试断言失败。表达式(流!=NULL)

    我收到以下错误 调试断言失败 表达式 流 NULL 文件 f dd vctools crty bld self x86 crt src fwrite c 创建 4 个线程时 CPU 使用率 100 该代码最初运行良好一段时间 然后给出此错误

随机推荐

  • 使用两个 yaml 文件进行配置属性

    我们正在使用 Spring Boot 应用程序 其中的属性是从application yml文件而不是application properties 位于src main resources 如下所示 config host localhos
  • 如何在类 Unix shell 中保存交互式命令行程序的输出?

    我正在用 C 语言编码并在 Linux 终端中运行程序 我想将程序的输出保存在 txt 文件中 我通常通过执行来做到这一点 a out gt filename txt 但我编写了一个交互式程序 其中我必须输入一个数字才能启动该程序 这种情况
  • vs2013 编译用于调试但不用于发布?

    我在VS2013中遇到了一些奇怪的事情 我的程序在调试模式下构建得很好 但在release模式下 会出现很多错误 例如 Error 2 error C2440 default argument cannot convert from con
  • 这些获取 DTE2 的方法有什么区别(Visual Studio 2013)

    基于这个问题 https stackoverflow com questions 4955009 getting the dte2 or teamfoundationserverext object in a vs package proj
  • angularJS $on 事件处理程序触发顺序

    在 AngularJS 事件处理的上下文中 我想知道两件事 如何定义监听同一事件的处理程序的触发顺序 如果您开始想知道这一点 这是设计不好的迹象吗 阅读有关角度的文档后 on broadcast 和 emit http docs angul
  • 搜索不适用于 JQGrid 中的过滤器工具栏

    我在稍后阶段 而不是在退出网格时 加载 JQGrid 中的数据时遇到问题 我正在使用过滤器工具栏进行搜索 以下是我正在使用的代码 创建网格 jQuery list jqGrid datatype local colNames my col
  • 找到任意大数的算法

    这是我一直在思考的事情 假设你有一个数字 x 它可以无限大 你必须找出它是什么 您只知道另一个数字 y 是否大于或小于 x 找到 x 的最快 最好的方法是什么 一个邪恶的对手以某种方式选择了一个非常大的数字 说 int x 9 9 9 9
  • Java 是否有带有删除策略的有界集合? [复制]

    这个问题在这里已经有答案了 可能的重复 Java 中保存最后 N 个元素的大小受限队列 https stackoverflow com questions 5498865 size limited queue that holds last
  • 斯坦福核心 NLP 如何获得概率和误差幅度

    当使用解析器或核心 NLP 中的任何注释时 有没有办法访问概率或误差幅度 为了将我的问题放在上下文中 我试图了解是否有一种方法可以以编程方式检测歧义情况 例如 在下面的句子中 动词 desire 被检测为名词 我希望能够知道我可以从 Cor
  • 需要 JavaScript 支持的页面上的 cURL 请求

    我需要获取 pinnaclesports com 的 HTML 源代码 问题是它检测cookie和JS是否启用 如果没有 它只是返回一些页面说 该网站需要启用 JavaScript 和 Cookie 请更改您的浏览器设置或升级您的浏览器 使
  • 无法在 Ubuntu 20.04 上安装 bazel - EXPKEYSIG 无效

    我正在按照以下说明进行操作https docs bazel build versions master install ubuntu html install with installer ubuntu https docs bazel b
  • 如何在快速弹出视图控制器后传递数据

    我正在制作一个关于书籍的应用程序 在应用程序中 我想让应用程序通过获取 ISBN 条形码 自动填充图书信息 views https i stack imgur com ohz2S png 有2个班 一个是 UploadMain 另一个是 S
  • 如何在没有 Windows 窗体引用的情况下获取屏幕分辨率?

    我需要获取运行测试的桌面的分辨率 以前我是这样获取分辨率的 Screen screen Screen PrimaryScreen int screenWidth screen Bounds Width int screenHeight sc
  • 按 JSON 数据类型 postgres 排序

    我有一个 Postgres 表 其中包含 JSON 类型的列 其中包含一堆 JSON 对象 我想查询表记录并按 JSON 字段中存储的值对结果进行排序 我正在运行查询 但它们没有正确排序 我没有找到大量关于专门订购 JSON 字段类型的文档
  • 为什么我在终端中安装的软件包无法在 Spyder 上运行?

    我已经使用 Jupyter Notebook 一段时间了 效果很好 我今天尝试下载 Spyder 但我在终端中安装的许多软件包无法在 Spyder 上运行 例如 pandas datareader在 Jupyter 笔记本上工作正常 但在
  • Silverlight 3 WCF 服务“CommunicationException”服务器返回错误:NotFound

    我有一个 Silverlight 3 应用程序 95 的时间都成功从 WCF 服务 在同一个 Web 应用程序中 请求数据并显示它 这种情况很少发生 通常如果我快速多次访问该服务 但有时它会在单个请求上发生 每隔一段时间 如果我在短时间内请
  • 如何使用 jquery UI 对话框作为 javascript 确认?

    我阅读了很多关于此问题的问题 但每个解决方案都使用相同的解决方法 在 jquery 对话框中提交表单 如下所示 dialog dialog buttons Confirm function window location href targ
  • Rails:自动重新加载虚拟应用程序中使用的 gem 文件

    开发 gem 时 我经常使用需要 gem 的虚拟 Rails 应用程序 以便在开发过程中尝试 gem 更改 另外 我使用相同的虚拟应用程序进行集成测试 通常 我有宝石 rails foo gem 以及相关的虚拟应用程序 rails foo
  • Azure Hyperledger Fabric 单成员区块链设置

    我开始使用 Azure 托管多节点 Hyperledger 网络 我之前一直在本地环境中运行 但想使用 Azure 我部署了 Hyperledger Fabric 单成员区块链 模板 该模板创建了 5 个虚拟机 每个虚拟机用于 CA 订购者
  • 本地主机上的双栈 ipv6/ipv4

    我有一个 ipv4 服务器 它只接受本地主机上的连接 使用INADDR LOOPBACK 我想将此服务器转换为双栈 ipv6 ipv4 然而 使用in6addr loopback只接受连接到 1 我发现我可以同时接受 ipv4 和 ipv6