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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1047663
Accepted
Skizz
Skizz
Asked: 2018-06-19 08:59:43 +0800 CST2018-06-19 08:59:43 +0800 CST 2018-06-19 08:59:43 +0800 CST

使用 18.04 服务器的网络设置

  • 772

自从我最近进行升级以来,我的网络设置一直有问题。它曾经可以工作,但现在 IP 流量没有像以前那样通过,但其他一切似乎都可以正常工作。我之前问过一个关于这个的问题,但现在我要问的是如何从头开始设置我的网络。我的网络如下所示:-

 Client PCs   |--------|
  Windows-----|        |                |----------------|
   Linux(1)---| Switch |-------------(2)| Server (18.04) |(3)-------Internet
  Printer-----|        |                |----------------|
 Other PCs----|        |
              |--------|

(1) 私网 Linux PC 的 ifconfig 输出:-

eth0  Link encap:Ethernet  HWaddr 00:19:66:82:61:f7  
      inet addr:192.168.1.126  Bcast:192.168.1.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:37 errors:0 dropped:0 overruns:0 frame:0
      TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:4829 (4.8 KB)  TX bytes:8871 (8.8 KB)
      Interrupt:23 Base address:0xa800 

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:142 errors:0 dropped:0 overruns:0 frame:0
      TX packets:142 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:10976 (10.9 KB)  TX bytes:10976 (10.9 KB)

(2) 以太网 ID:enp5s0

(3) 以太网 ID:enp0s31f6

并且服务器上的 yaml netplan 文件是:-

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp5s0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.2/24]
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
    enp0s31f6:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.5/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

服务器还运行 dnsmasq,它提供似乎正常工作的 DHCP 和 DNS 服务,在客户端 PC 上按名称 ping 站点(例如“ping stackoverflow.com”)确实获得了 IP 地址,但随后无法执行实际操作平。

此外,“/proc/sys/net/ipv4/ip_forward”设置为“1”。

我错过了什么明显的东西吗?

如果您需要了解其他任何信息,请发表评论,我将使用信息更新问题。

networking server
  • 1 1 个回答
  • 2809 Views

1 个回答

  • Voted
  1. Best Answer
    Thomas Ward
    2018-06-19T17:09:07+08:002018-06-19T17:09:07+08:00

    您在这里缺少的是NAT 规则,因此系统知道如何将流量从网络内部路由到外部。但是,这里有一个问题:您向我们提供了网络接口,这两个接口都有私有 IPv4 地址。这使得处理 NAT 规则有点棘手。

    但是,假设只有一个接口有网关 ( enp0s31f6),我将在假设该接口是 Internet 连接接口的情况下进行操作。

    NAT 代表网络地址转换。如果您想了解更多关于 NAT 工作原理的信息,如果您想了解更多关于 NAT 工作原理的信息,可以参考 How Stuff Works (.com) 网站制作的不错的 NAT 外行指南。

    NAT 行为的实际描述与回答这个问题无关,但基本上,它从私有 IP 空间(例如,源地址为 192.168.0.10)获取到 Internet 的数据包,并在重新广播之前翻译数据包到 Internet(通常),以便“源”地址看起来像路由器的公共 IP 地址。这个 NAT“会话”会被记住,直到该会话的连接终止,这意味着路由器也可以执行反向 NAT 规则,以便 Internet 的数据包正确地到达内部 IP 地址。(How Stuff Works 指南在解释 NAT 方面比这更好;这只是一个快速而肮脏的描述)


    现在,让你的“路由器”工作。

    您需要添加 NAT 规则,以便允许私有子网(on enp5s0) 冒充服务器访问 Internet。这被称为术语MASQUERADE。iptables这就是标准的现成路由器的工作方式,它们都使用 NAT 将私有 IPv4 地址转换为公共地址,以便与 Internet 进行无缝通信。

    这是您应该开始的命令:

    sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
    

    让我分解一下,以便您了解该规则的实际作用。

    • sudo iptables- 以超级用户身份执行iptables命令。
    • -t nat- 调整系统上的 NAT 规则,而不是防火墙访问控制/过滤列表。
    • -A POSTROUTING- 添加到路由后 NAT 表。
    • -s 192.168.1.0/24- 匹配来自私有 IP 子网的流量...
    • ! -d 192.168.1.0/24- ...其中目标IP地址不是子网的私有IP空间...
    • -j MASQUERADE- ...并通过主网络接口(在本例中为enp0s31f6)重新传输此数据包,转换数据包的 IP 地址,使其看起来像是源自“路由器”/服务器,任何在私有 IP 空间之外看到数据包的东西.

    因此,从 192.168.1.10 到 IP 地址在 192.168.1.0-255 之外的服务器上的数据包在另一台服务器看来,该数据包来自 192.168.0.5(您的服务器),而不是起源192.168.1.10 的。但是,系统会记住这个转换,以便它可以接收发往 192.168.0.5 的响应数据包,并确保它们被正确寻址以返回到您的 192.168.1.10 地址。


    但是,有一个问题:重新启动后将无法保存。

    因此,您应该安装该iptables-persistent软件包,以便每次启动时都重新加载此 NAT 规则。**

    sudo apt install iptables-persistent
    

    当它提示您保存当前的 IPv4 和 IPv6 规则时,您应该选择“是”。


    此外,这种没有任何防火墙规则的“默认”虽然在理论上很好,但会使您的系统容易受到来自整个 Internet 的攻击iptables,您应该真正了解有关如何正确保护服务器的任何基本指南/路由器,使外界无法直接攻击服务器。但是,这超出了您最初问题的范围,如果您需要帮助更好地保护专用网络免受外部(“Internet”)的影响,那么您应该考虑将其作为自己的问题提出。

    • 1

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve