配置linux互通
摘要:配置Linux主机间网络互通的关键步骤包括:1)确保所有主机在同一网络(物理机或虚拟机使用桥接/仅主机模式);2)配置静态IP或稳定DHCP分配;3)测试IP层连通性;4)关闭或配置防火墙放行必要端口;5)通过/etc/hosts或DNS配置主机名解析;6)设置SSH免密登录。最后需验证ping、SSH和端口连通性。这些步骤是搭建Hadoop/Kubernetes等集群的基础前提。生产环境建
要配置 Linux 主机之间网络互通(互相通信),通常包括以下几个关键步骤。这里假设你是在局域网(如内网或虚拟机环境)中操作,目标是让多台 Linux 主机能通过 IP 或主机名 互相访问(如 ping、ssh、服务调用等)。
一、基础网络连通性确认
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 NetworkManager 或 network
二、测试 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 22 或 nc -zv master 22 |
| 文件传输 | scp file.txt user@node1:/tmp/ |
📌 总结:关键步骤清单
- 网络配置:确保 IP 在同一子网,网关/DNS 正确
- 防火墙处理:放行必要端口(至少 ICMP + SSH)
- 主机名映射:通过
/etc/hosts实现名称解析 - SSH 互通:配置免密登录提升效率
- 服务测试:验证 ping / ssh / 应用端口是否可达
如果你是在搭建 Hadoop / Kubernetes / Spark 等集群,以上步骤是基础前提。需要更具体的场景(如 Docker、K8s、NFS 共享等),可进一步说明。
更多推荐
所有评论(0)