当前位置:首页 > 物理机 > 正文

CentOS物理机外网

entOS物理机配置外网需检查网卡、设置IP及网关,确保路由正确,通过 nmcli或修改配置文件实现网络连通

前置条件验证

硬件接口确认

使用ip link show命令查看可用网卡设备(如ens33/eth0),确保物理网线已正确插入对应端口,典型输出示例:

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:aa:bb:cc brd ff:ff:ff:ff:ff:ff

若未检测到期望中的网卡名称,需进入BIOS启用PCI-E插槽或更换PCI网卡扩展卡。

IP地址分配模式选择

部署场景 推荐方案 优点 注意事项
动态获取 DHCP客户端 自动更新租约周期 依赖路由器稳定性
静态固定 手动配置 IP持久不变 需避开DHCP地址池范围
特殊需求 APIPA自设 临时测试用途 仅限内网通信

建议生产环境优先采用静态IP配置,通过修改/etc/sysconfig/network-scripts/ifcfg-ens33文件实现:

TYPE=Ethernet
BOOTPROTO=none          # 禁用DHCP
ONBOOT=yes              # 启动时激活该接口
IPADDR=192.168.1.100    # 根据子网规划填写
NETMASK=255.255.255.0  # CIDR格式可写作PREFIX=24
GATEWAY=192.168.1.1     # 默认路由指向上层交换机
DNS1=8.8.8.8           # 公共DNS解析服务
DNS2=114.114.114.114   # 备用解析节点
DEFROUTE=yes           # 允许默认路由规则生效
PEERDNS=no             # 不继承上游设备的DNS设置

保存后执行systemctl restart NetworkManager使配置生效。


路由与NAT转发配置

物理机位于私有网络时,必须通过NAT机制实现互联网访问,编辑主配置文件:

vi /etc/sysctl.conf

添加以下内核参数:

net.ipv4.ip_forward=1                 # 开启IPv4转发功能
net.ipv4.conf.default.rp_filter=2      # 放宽反向路径过滤限制
net.ipv4.conf.all.accept_redirects=0   # 禁止ICMP重定向欺骗攻击

加载新设置:

CentOS物理机外网  第1张

sysctl -p

创建持久化的防火墙规则(基于firewalld服务):

firewall-cmd --permanent --add-masquerade --zone=public
firewall-cmd --reload

该操作会在公网区域自动生成SNAT规则,将内部请求源地址转换为网关IP对外发送,可通过iptables -t nat -L POSTROUTING验证规则是否存在类似条目:

POSTROUTING (policy ACCEPT)
target: MASQUERADE rule hit count: ANY
prot opt source destination ... anywhere -> anywhere ... use TOS=0x00 flag bits=0x00 metric=0 mark=0x4000/0x4500 route=...

连通性测试方法论

分层诊断流程

层级 测试工具 预期结果 异常处理方向
L1链路层 ping -I ens33 192.168.1.1 TTL超时前收到响应包 检查线缆/交换机端口状态
L2交换层 arp -an | grep gateway 显示正确的MAC地址映射 排查ARP欺骗或代理冲突
L3网络层 traceroute www.baidu.com 逐跳追踪至目标节点 定位丢包节点位置
L4传输层 telnet smtp.example.com 25 建立TCP三次握手连接 验证端口可达性

MTR综合监测

安装mtr工具进行实时路径质量监控:

yum install mtr -y
mtr --report google.com

重点关注Loss%、Avg延迟等指标,若某段链路丢包率超过5%,则可能存在MTU不匹配问题,此时应执行路径MTU发现测试:

ping -M do -s 1472 <目标IP>

逐步减小载荷长度直至不再分片为止。


高级调优策略

TCP栈参数调整

针对高吞吐量场景,建议修改系统级网络参数:

cat >> /etc/sysctl.conf <<EOF
net.core.somaxconn=65535          # 最大并发连接数
net.ipv4.tcp_tw_reuse=1            # 快速回收TIME_WAIT状态套接字
net.ipv4.tcp_fin_timeout=15        # 缩短FIN报文等待时间(秒)
fs.file-max=1000000               # 允许打开的最大文件描述符数量
EOF
sysctl --system

同步更新用户态限制值:

ulimit -n 65535

队列调度算法优化

对于多租户共享带宽的环境,可采用FQ_CODEL公平队列算法替代默认策略:

tc qdisc replace dev ens33 root handle 1: fq_codel limit 1000 quantum 300 ecn

该配置可实现流量整形与拥塞控制双重效果,有效降低突发流量导致的缓冲区溢出概率。


典型故障案例解析

案例1:能Ping通网关但无法解析域名
现象描述:执行ping 8.8.8.8成功,但ping www.google.com失败。
根本原因:DNS客户端配置错误或上游递归解析失效。
解决方案:

  1. 验证/etc/resolv.conf中的DNS服务器列表有效性;
  2. 使用dig工具进行权威查询:dig @8.8.8.8 example.com +trace
  3. 检查本地hosts文件是否存在覆盖条目。

案例2:间歇性断连伴随ARP告警
日志特征:dmesg | tail -n50出现大量arp: entry added记录。
处置步骤:

  1. 启用ARP忽略模式:echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
  2. 绑定特定MAC地址到接口:在ifcfg文件中增加HWADDR=00:0c:29:aa:bb:cc
  3. 部署arptables防火墙规则过滤非规应答包。

FAQs

Q1: CentOS物理机设置静态IP后无法上网怎么办?
A: 按顺序执行以下排查步骤:

  1. 确认网关可达性:ping <网关IP>
  2. 检查DNS解析是否正常:nslookup www.baidu.com
  3. 验证路由表是否正确:route -n应包含默认路由项;
  4. 确保SELinux未阻断网络服务:getenforce若为Enforcing模式,尝试临时关闭测试。

Q2: 如何确认NAT转发是否成功工作?
A: 通过双向测试验证:

  • 从内部机器发起外部访问请求(如curl ifconfig.me);
  • 同时在另一台外网设备上执行反向探测:telnet <公网IP> <端口号>
  • 使用tcpdump抓包分析地址转换过程:tcpdump -i any host <内部IP>观察出站数据包
0