Linux网段互访怎么设置?Linux不同网段之间如何配置通信

在 Linux 系统中,实现不同网段(子网)之间的互访,核心在于路由配置,当两台主机不在同一个二层网络(即不在同一个子网)时,数据包必须通过网关(Gateway)路由器进行转发。

以下是实现 Linux 网段互访的完整指南,涵盖场景、配置方法和常见问题排查。

不同网段通信如何配置,配置方法+应用场景讲解
加载中
不同网段通信如何配置,配置方法+应用场景讲解

核心原理

  1. 同网段互访:通过 ARP 协议解析 MAC 地址,直接二层通信。
  2. 跨网段互访
    • 源主机检查目标 IP 是否在同一网段。
    • 如果不在,源主机会将数据包发送给默认网关特定路由表中的下一跳
    • 网关/路由器根据路由表将数据包转发到目标网段。

常见场景与配置方法

场景 1:临时测试(使用 ip route 命令)

适用于临时添加路由,重启后失效。

假设:

  • 本机 IP:168.1.10/24
  • 目标网段:0.0.0/24
  • 网关 IP:168.1.1

添加路由:

# 语法:ip route add <目标网段> via <网关IP> dev <网卡名>
sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0

删除路由:

sudo ip route del 10.0.0.0/24

查看路由表:

ip route show
# 或
route -n

场景 2:永久配置(推荐)

永久配置需根据 Linux 发行版选择不同方法。

✅ 方法 A:使用 Netplan(Ubuntu 18.04+ / Debian 11+)

Linux网段互访怎么设置?Linux不同网段之间如何配置通信

  1. 编辑 Netplan 配置文件(通常在 /etc/netplan/ 目录下,如 01-netcfg.yaml50-cloud-init.yaml):
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.10/24
      routes:
        - to: 10.0.0.0/24
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 114.114.114.114
  1. 应用配置:
    sudo netplan apply

✅ 方法 B:使用 NetworkManager(CentOS/RHEL 8+ / Fedora / Ubuntu 桌面版)

使用 nmcli 工具:

# 添加静态路由到指定连接(假设连接名为 eth0)
sudo nmcli connection modify eth0 +ipv4.routes "10.0.0.0/24 192.168.1.1"
sudo nmcli connection up eth0

✅ 方法 C:使用 /etc/network/interfaces(Debian/Ubuntu 传统方式)

编辑 /etc/network/interfaces

auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
    # 添加静态路由
    up route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.1
    down route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.1

重启网络服务:

sudo systemctl restart networking

✅ 方法 D:使用 systemd-networkd(Arch Linux / 部分服务器)

编辑 /etc/systemd/network/10-eth0.network

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
[Route]
Destination=10.0.0.0/24
Gateway=192.168.1.1

Linux网段互访怎么设置?Linux不同网段之间如何配置通信

重启服务:

sudo systemctl restart systemd-networkd

场景 3:多网卡/复杂路由(策略路由)

Linux 主机有多个网卡,且需要基于源 IP 或目标 IP 选择不同的网关,需使用 策略路由

eth1 发出的流量走网关 168.2.1,从 eth0 发出的流量走网关 168.1.1

  1. 创建自定义路由表(如 table10):

    echo "10 custom_table" | sudo tee -a /etc/iproute2/rt_tables
  2. 添加规则:

    # 从 eth1 发出的流量使用 table10
    sudo ip rule add from 192.168.2.0/24 table 10
    # 在 table10 中添加默认网关
    sudo ip route add default via 192.168.2.1 dev eth1 table 10

防火墙与安全组检查

即使路由正确,防火墙也可能阻止跨网段通信。

检查 iptables/nftables

# 查看当前规则
sudo iptables -L -n -v
# 临时允许所有流量(仅用于测试)
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

检查 firewalld(CentOS/RHEL)

sudo firewall-cmd --list-all
# 临时关闭测试
sudo systemctl stop firewalld

检查 ufw(Ubuntu)

sudo ufw status
# 临时关闭测试
sudo ufw disable

云环境安全组

  • 如果是云服务器(AWS、简米云、酷番云等),还需检查安全组网络 ACL 是否允许相应端口和 IP 段访问。

Linux网段互访怎么设置?Linux不同网段之间如何配置通信

常见问题排查步骤

  1. Ping 测试

    ping <目标IP>
    • ping 不通,但 arp -a 能看到网关 MAC,说明路由问题。
    • arp -a 看不到网关,说明二层不通或网关未响应 ARP。
  2. 追踪路由

    traceroute <目标IP>
    # 或
    mtr <目标IP>

    查看数据包在哪一跳丢失。

  3. 检查路由表

    ip route show

    确保目标网段有对应的路由条目。

  4. 检查网关是否可达

    ping <网关IP>
  5. 检查目标主机防火墙
    确保目标主机允许来自源网段的 ICMP 或特定端口访问。


步骤 操作
1 确认本机 IP 和子网掩码
2 确认目标网段和网关 IP
3 添加静态路由(ip route add 或配置文件)
4 检查本机防火墙(iptables/firewalld/ufw)
5 检查目标主机防火墙和安全组
6 使用 pingtraceroute 验证

⚠️ 注意:在生产环境中,建议使用永久配置文件(如 Netplan、NetworkManager)来管理路由,避免重启后失效,务必确保防火墙规则允许跨网段通信。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/476288.html

(0)
RepriseHosting西雅图服务器$27.97/月性能如何?美国服务器租用推荐
上一篇 2026年7月9日 20:47
AI剪辑如何搭建,新手小白从零开始怎么做
下一篇 2026年3月1日 08:13

相关推荐

  • 星空极速linux怎么用?linux安装星空极速教程

    星空极速Linux版并非官方独立产品,而是指基于Linux内核优化的第三方拨号客户端或开源替代方案,其核心优势在于低资源占用、高并发连接稳定性及完全免费的授权模式,适合对系统性能敏感或追求极致精简的用户群体,在2026年的数字生态中,操作系统与网络接入工具的兼容性已成为用户关注的焦点,许多早期依赖Windows……

    2026年7月5日
    15100
  • Python在Linux下中文乱码怎么解决?python处理中文编码问题

    在Linux环境下运行Python并处理中文,核心在于统一操作系统、终端、编辑器及Python解释器的编码为UTF-8,并正确设置环境变量,即可彻底解决乱码问题,很多开发者在Linux服务器上部署Python脚本时,常遇到中文显示为问号或乱码的情况,这并非Python本身的问题,而是Linux系统默认的字符集配……

    2026年7月6日
    10200
  • linux怎么筛选日志?linux命令过滤日志文件

    Linux筛选日志的核心在于结合grep、awk、sed等命令行工具,根据时间、关键词或正则表达式精准提取关键信息,从而快速定位系统故障或安全事件,在服务器运维的日常工作中,日志文件往往庞大且杂乱,面对动辄几GB甚至几十GB的文本数据,盲目打开文件不仅效率低下,还容易遗漏关键线索,掌握高效的筛选技巧,是区分初级……

    2026年7月7日
    14100
  • Linux终端如何高亮显示?linux命令高亮显示设置

    在Linux终端中实现高亮显示,最核心的方案是通过配置Shell配置文件(如.bashrc或.zshrc)结合自定义别名或专用工具(如bat、fd),从而在命令行交互中获得类似IDE的代码着色体验,显著提升阅读效率与排错速度,Linux终端默认采用单色或有限的颜色组合,这种极简设计虽然节省资源,但在处理大量日志……

    2026年7月9日
    2600
  • Linux Socket详解是什么?Linux Socket编程入门教程

    Linux Socket 是操作系统内核提供的进程间通信及网络通信的标准接口,通过它应用层程序能像操作文件一样高效地发送和接收数据,构建起分布式系统的基石,很多人初接触网络编程时,常被 TCP/IP 协议栈的复杂性劝退,觉得那是底层黑客的专属领域,只要把 Socket 想象成电话机,内核网络栈就是电话线,应用层……

    2026年7月7日
    19800
  • Linux curl如何设置cookie?curl携带cookie请求接口

    在Linux环境下,使用curl配合cookie文件可以实现模拟登录、维持会话状态以及自动化抓取需要鉴权的网页内容,核心命令为curl -b指定读取或保存cookie的文本文件,很多开发者在编写爬虫脚本或自动化测试用例时,经常遇到“未登录”或“403 Forbidden”的报错,这通常是因为服务器需要验证客户端……

    2026年7月8日
    3400
  • Linux报错ora-12170怎么办?ora-12170错误代码解决方法

    Ora-12170错误通常由Linux客户端与Oracle数据库服务器之间的网络连接超时或TCP/IP配置不一致引起,核心解决思路是检查监听器状态、调整SQLNET.ORA中的超时参数,并验证防火墙规则,当你在Linux终端执行数据库连接命令时,如果屏幕突然弹出一串红色的报错信息,其中赫然写着ORA-12170……

    2026年7月7日
    5000
  • PHP在Linux下mail函数为何失效?Linux服务器配置SMTP

    ‘;$mail->AltBody = ‘这是一封纯文本格式的邮件(用于不支持HTML的客户端)’;$mail->send();echo ‘邮件发送成功’;} catch (Exception $e) {echo “邮件发送失败: {$mail->ErrorInfo}”;}## 常见陷阱与故障排……

    2026年7月5日
    6810
  • 如何在linux安装phpcms?linux安装phpcms详细步骤

    在Linux环境下安装PHPCMS最稳妥的方案是部署LNMP环境(Linux+Nginx+MySQL+PHP),通过源码编译或包管理器安装依赖后,解压CMS包并配置虚拟主机即可实现网站上线,很多站长在搭建内容管理系统时,往往被Linux复杂的命令行劝退,其实只要理清逻辑,整个过程并不晦涩,PHPCMS v9作为……

    2026年7月4日
    12800
  • Linux如何加载光驱?linux挂载光驱详细教程

    在Linux系统中加载光驱的核心方法是使用mount命令将光盘设备文件挂载到指定的空目录,通常设备路径为/dev/cdrom或/dev/sr0,挂载点建议设为/mnt/cdrom,许多刚接触Linux的用户在面对光驱时,往往会感到困惑,因为现代Linux发行版大多已不再默认自动挂载光盘,这与Windows系统的……

    2026年7月5日
    7700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注