要配置 Linux 主机之间网络互通(互相通信),通常包括以下几个关键步骤。这里假设你是在局域网(如内网或虚拟机环境)中操作,目标是让多台 Linux 主机能通过 IP 或主机名 互相访问(如 pingssh、服务调用等)。


一、基础网络连通性确认

1. 确保所有主机在同一网络

  • 物理机:连接到同一个交换机或路由器。
  • 虚拟机(如 VMware/VirtualBox):
    • 使用 桥接(Bridged)仅主机(Host-only) 模式(确保在同一子网)。
    • 避免使用 NAT 模式(除非做了端口转发)。

2. 配置静态 IP(推荐)或确保 DHCP 分配稳定

编辑网络配置文件(以常见发行版为例):

Ubuntu/Debian(使用 Netplan 或 NetworkManager)
# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.199.131/24]
      gateway4: 192.168.199.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

应用:sudo netplan apply

CentOS/RHEL(使用 nmcli 或配置文件)
# 编辑 /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.199.131
NETMASK=255.255.255.0
GATEWAY=192.168.199.1
DNS1=8.8.8.8
ONBOOT=yes

重启网络:sudo systemctl restart NetworkManagernetwork


二、测试 IP 层互通

在每台主机上执行:

# 查看本机 IP
ip a

# 从 A 主机 ping B 主机
ping 192.168.199.132

✅ 如果能 ping 通,说明 网络层已连通

❌ 如果不通,检查:

  • 防火墙是否阻止 ICMP(见下一步)
  • 子网掩码是否一致
  • 是否在同一 VLAN 或广播域

三、关闭或配置防火墙(关键!)

Linux 默认可能启用防火墙(firewalld 或 ufw),会阻止入站连接。

Ubuntu(ufw):

sudo ufw disable          # 临时关闭(测试用)
# 或开放特定端口:
sudo ufw allow ssh
sudo ufw allow from 192.168.199.0/24

CentOS/RHEL(firewalld):

sudo systemctl stop firewalld      # 临时关闭
sudo systemctl disable firewalld   # 永久禁用(测试环境)

# 或保留防火墙但放行:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-source=192.168.199.0/24
sudo firewall-cmd --reload

⚠️ 生产环境建议配置规则而非完全关闭防火墙


四、配置主机名解析(可选但推荐)

为了让 host1 能直接 ssh user@master 而不用记 IP,需配置主机名解析。

方法 1:修改 /etc/hosts(适用于小规模集群)

每台主机/etc/hosts 中添加:

192.168.199.131 master
192.168.199.132 node1
192.168.199.133 node2

注意:该方式需手动维护,适合 2~10 台机器。

方法 2:搭建内网 DNS(大规模推荐)

如使用 dnsmasq、bind 等,此处略。


五、配置 SSH 免密登录(用于自动化运维)

在 master 节点生成密钥并分发到其他节点:

# 1. 生成 SSH 密钥(一路回车)
ssh-keygen -t rsa

# 2. 复制公钥到其他主机(输入密码一次)
ssh-copy-id user@192.168.199.132
ssh-copy-id user@node1   # 如果已配 hosts

# 3. 测试免密登录
ssh node1

确保目标主机的 sshd 服务已启动:sudo systemctl status sshd


六、验证互通性

操作 命令示例
Ping 测试 ping master
SSH 登录 ssh user@master
端口连通性 telnet master 22nc -zv master 22
文件传输 scp file.txt user@node1:/tmp/

📌 总结:关键步骤清单

  1. 网络配置:确保 IP 在同一子网,网关/DNS 正确
  2. 防火墙处理:放行必要端口(至少 ICMP + SSH)
  3. 主机名映射:通过 /etc/hosts 实现名称解析
  4. SSH 互通:配置免密登录提升效率
  5. 服务测试:验证 ping / ssh / 应用端口是否可达

如果你是在搭建 Hadoop / Kubernetes / Spark 等集群,以上步骤是基础前提。需要更具体的场景(如 Docker、K8s、NFS 共享等),可进一步说明。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐