AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1742050
Accepted
StoneThrow
StoneThrow
Asked: 2022-09-13 14:17:59 +0800 CST2022-09-13 14:17:59 +0800 CST 2022-09-13 14:17:59 +0800 CST

我的公共 IP 地址和分配给我的 NIC 的地址之间有什么关系?

  • 772

当我运行一个在线 IP 查找工具时,比如https://whatismyipaddress.com/,我得到一个像 24.253.65.208 这样的 IP 地址。

但是我已经将我的家庭路由器设置为 DHCP 服务器,并在一定范围内分配了静态 IP 地址,如下图所示: 在此处输入图像描述

如果我ifconfig在笔记本电脑上运行,我会看到它的以太网 NIC 分配了 IP 地址 10.0.0.2:

$ ifconfig
br-fbff3346e4d9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.49.1  netmask 255.255.255.0  broadcast 192.168.49.255
        inet6 fe79::42:e9fe:ff10:c35d  prefixlen 64  scopeid 0x20<link>
        ether 02:43:e9:10:c4:5e  txqueuelen 0  (Ethernet)
        RX packets 522576  bytes 24843001 (24.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 680143  bytes 1914033742 (1.9 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 30455  bytes 3345251 (3.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 30455  bytes 3345251 (3.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth84aa4c6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f8a6:1dff:fea5:7eae  prefixlen 64  scopeid 0x20<link>
        ether fb:b6:1d:b5:7e:be  txqueuelen 0  (Ethernet)
        RX packets 505519  bytes 30297179 (30.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 661456  bytes 1855293659 (1.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::5f9c:c301:a6a3:6e36  prefixlen 64  scopeid 0x20<link>
        ether f8:59:72:01:69:cf  txqueuelen 1000  (Ethernet)
        RX packets 4847088  bytes 6757721096 (6.7 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1937921  bytes 256121852 (256.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

但如您所见,没有24.253.65.208的迹象。

所以我的问题是: 24.253.65.208 - 外界似乎看到 - 和10.0.0.2之间的关系是什么,我的网卡实际上是分配的?

我想某些软件/硬件正在24.253.65.208和10.0.0.2之间“转换” ——但那是谁?我的路由器?

如果未选中用户路由器作为 DHCP 服务器框会有什么不同?如果未选中该框,我的网络中的各种设备将如何分配 IP 地址?

networking router
  • 3 3 个回答
  • 69 Views

3 个回答

  • Voted
  1. Best Answer
    user1686
    2022-09-13T20:41:13+08:002022-09-13T20:41:13+08:00

    我想某些软件/硬件正在 24.253.65.208 和 10.0.0.2 之间“转换”——但那是谁?我的路由器?

    它通常是你的路由器,是的。除了常规 IP 路由外,所有家用路由器都具有 NAT 功能——大多数 ISP 只能为每位客户提供一个公共 IP 地址,并且您不能直接在多个设备之间共享该地址(即不能简单地ifconfig通过一次),因此地址被分配给路由器的“WAN”接口,它成为路由器的工作,将整个 LAN 的私有地址“伪装”为公共地址。

    如果你在路由器本身上运行ifconfig,ip addr它可能看起来像这样(我做了它,接口可能不称为“wan0”和“lan0”,但你明白了):

    wan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 24.253.65.208  netmask 255.255.255.0  broadcast 24.253.65.255
    
    lan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.0.0.1  netmask 255.255.255.0  broadcast 10.0.0.255
    

    地址转换不是路由的内置部分,而是作为一个单独的功能完成的(并且可以与路由分开启用/禁用)。由于许多家庭路由器在内部运行 Linux 的变体,因此 NAT 功能通常通过标准 Linux iptables 实现——您可以在网上找到各种 iptablesSNAT和规则示例。MASQUERADE你可以想象路由器有这样的东西:

    iptables -t nat -A POSTROUTING -i lan0 -o wan0 -j MASQUERADE
    

    但请注意,最近,随着一些 ISP 的 IP 地址用尽,并因此实施 CGNAT(“运营商级”NAT),到公共地址的转换可能由路由器(或专用 NAT 设备)在ISP 代替。更准确地说,CGNAT ISP 有两层转换——你的路由器仍然像以前一样有 NAT,将你的整个 LAN 伪装成一个 IP 地址,但它不再是公共地址;ISP 添加了提供公共地址的第二个转换层。这有点难看。

    但另一方面,许多 ISP 现在正在向客户部署 IPv6——您还没有(至少在 ifconfig 输出中没有看到),但是如果您确实有 IPv6,那么您确实会发现您的计算机拥有自己的公共IP地址直接在其“wlan0”接口上,路由器就是这样,一个转发数据包而不进行任何地址转换的路由器。(也就是说,它仍然会为 IPv4 做 NAT,但不再为 IPv6 做。)

    如果未选中用户路由器作为 DHCP 服务器框会有什么不同?如果未选中该框,我的网络中的各种设备将如何分配 IP 地址?

    您的设备将不再自动分配 IP 地址,但除此之外没有任何变化。他们仍然应该像以前一样在路由器的“LAN”范围内拥有 IP 地址。如果您想在单独的系统上设置自己的 DHCP 服务器,同时仍使用与现在相同的路由器,或者如果您希望避免 DHCP 并完全依赖静态 IP 配置,则可以使用此选项。

    此复选框不会禁用 NAT 或路由;路由器的 LAN 和 WAN 接口保持独立的 LAN 和 WAN 接口。如果您想完全绕过路由器(例如,在路由器具有内置 DSL 调制解调器并且您仍然需要“调制解调器”部分的情况下),您会寻找“桥接”模式。

    我想我明白了:公共 IP 地址(24.253.65.208)和我的调制解调器之间有几层“内部网络”。

    不,不应该。在通常情况下,您的家庭路由器直接与您的家庭 LAN和ISP 的网络接壤——调制解调器根本不参与 IP,它只是转换较低层的信号。

    虽然所谓的“调制解调器”通常是一个单元中的调制解调器和家庭路由器,但在这种情况下,它确实可以创建额外的路由和NAT 层——完全有可能链接多层 NAT 设备,而不是你应该,但它可能发生。

    在这种情况下,最外面的家庭路由器(例如内置于调制解调器中的路由器)将被分配公共 IP 地址。

    那么,这些“内部网络”层中的每一层都实现了一个 NAT(如约翰的评论中所述),以便来自更靠近公众的层的入站数据包被路由到更靠近我的调制解调器的层,这是否正确?

    不,通常只有一个这样的层(除非您链接多个家庭路由器并且它们都被配置为认为它们中的每一个都直接连接到 ISP)。

    一个数据包确实要经过很多网络和很多路由器,但作为一般规则,路由器不转换 IP 地址——它们只转发数据包。您的家庭路由器进行 NAT 是一个例外,而不是默认设置。


    附带说明一下,不要依赖ifconfigLinux 系统来始终正确地报告事情。虽然它在大多数情况下都有效,但有时同一接口上可能有多个 IPv4 地址,但 ifconfig仍然没有更新为显示超过第一个地址(20 年后?),这可能会引起很多混乱。虽然 ifconfig 仍然是 BSD 系统上的主要工具,但“当前的”Linux 命令是ip a[ddr]列出 IP 地址(可能ip -br a是“简短的”每行一个接口的列表)并ip -s -h l[ink]获取统计信息。

    • 3
  2. Charles Burge
    2022-09-13T20:24:16+08:002022-09-13T20:24:16+08:00

    我想某些软件/硬件正在 24.253.65.208 和 10.0.0.2 之间“转换”——但那是谁?我的路由器?

    是的,就是这样。事实上,它被称为网络地址转换 (NAT),它的存在是为了让您的网络上只有一个公共 IP 地址,但有多个私有地址。

    您的公共地址与分配给您的内部设备的地址之间没有实际关联。内置 DHCP 服务器的家庭路由器几乎总是使用以下范围之一来分配地址:
    10.0.0.1 - 10.255.255.254
    172.16.0.1 - 172.31.255.254
    192.168.0.1 - 192.168.255.254

    这些范围被留作专用地址。

    如果您关闭了路由器的 DHCP 功能,则您的设备在开机时将无法获取 IP 地址 - 除非以下情况之一为真:
    您的网络上运行着另一台 DHCP 服务器,
    或者您为每台设备分配了静态地址

    • 2
  3. Scottmeup
    2022-09-13T20:07:52+08:002022-09-13T20:07:52+08:00

    但如您所见,没有 24.253.65.208 的迹象

    这通常会列在 WAN 下。

    我想某些软件/硬件正在 24.253.65.208 和 10.0.0.2 之间“转换”——但那是谁?我的路由器?

    是的。您的路由器在您的家庭网络和您的 ISP 网络之间路由流量。

    您的 ISP 通过他们自己的路由器在他们的网络和互联网的其余部分之间路由流量。

    您可以将 ISP/WAN 和家庭/LAN 视为路由器在其间传递信息的两个独立网络。

    如果未选中用户路由器作为 DHCP 服务器框会有什么不同?

    本地网络上的设备不会被分配与路由器位于同一子网的地址。

    结果,他们将无法与您的路由器通信或通过您的路由器访问互联网。

    如果未选中该框,我的网络中的各种设备将如何分配 IP 地址。

    半随机,取决于设备软件,如果设备设置为通过 DHCP 获取其 IP 地址,或者如果您已将它们配置为使用静态 IP 地址,则取决于设备软件。

    • 1

相关问题

  • 用户使用 FileZilla 连接到 SFTP 服务器拒绝连接

  • NAT 后面的 NAT 如何工作(路由器的 NAT 和 ISP 的 NAT)?

  • Win10 1803:如何让移动热点成为专用网络?

  • nc如何识别服务名称

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve