Linux网络配置——IP/DNS/防火墙和机器人联网调试
面试翻车现场去年面试过一个哥们简历上项目经验写得很漂亮什么多机器人协作系统。我问他你的两台机器人之间通信延迟很高怎么排查网络问题他说检查网线有没有插好。我说插好了呢他说换一根网线。我说如果是无线连接呢如果是网络配置问题呢他沉默了。做机器人开发网络问题是你天天会碰到的。两台机器人之间通信、远程调试、ROS2的DDS发现机制……全都依赖网络。不懂网络配置出了问题你就是个瞎子。IP地址网络世界的门牌号每台联网的设备都需要一个IP地址。IPv4是四个数字比如192.168.1.100。每个数字范围0-255。IP分两类公网IP和私网IP。192.168.x.x、10.x.x.x、172.16-31.x.x是私网地址只能在局域网内用。你的机器人大概率用的是私网IP。查看当前IPip addr show # 或者简单点 ifconfig # 老系统你会看到一堆信息找eth0有线网卡或wlan0无线网卡下面的inet那一行。inet 192.168.1.100/24表示IP是192.168.1.100子网掩码24位也就是255.255.255.0。设置静态IP在机器人上很重要。你总不希望每次开机IP都变然后SSH连不上。编辑Netplan配置Ubuntu 22.04# /etc/netplan/01-static.yaml network: version: 2 ethernets: eth0: addresses: [192.168.1.100/24] routes: - to: default via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]然后sudo netplan apply生效。DNS域名到IP的翻译你ping baidu.com能通是因为DNS把域名翻译成了IP。如果DNS挂了你ping域名会报unknown host但ping IP地址可能还是通的。查看DNS配置cat /etc/resolv.conf。nameserver 8.8.8.8 nameserver 114.114.114.114机器人一般不需要DNS——它们直接用IP通信。但如果你需要apt install装包、或者访问远程服务器用域名DNS就很重要了。防火墙端口的保安Ubuntu默认用ufwUncomplicated Firewall管理防火墙。sudo ufw status # 查看状态 sudo ufw enable # 启用 sudo ufw allow 22/tcp # 允许SSH sudo ufw allow 11311 # 允许ROS1端口 sudo ufw deny 80 # 禁止HTTPROS2用的是DDS通信默认在UDP multicast上。如果你的防火墙挡住了multicastROS2节点之间会发现不了对方。这是个经典的坑。解决方法sudo ufw allow in proto udp to 239.255.0.1 # DDS multicast地址 sudo ufw allow 11800:11899/udp # DDS数据端口范围或者开发阶段直接关掉防火墙sudo ufw disable。生产环境别这么干。网络调试工具ping——最基本的连通性测试。ping 192.168.1.100 # 测试能不能到目标IP ping -c 10 192.168.1.100 # 发10个包统计丢包率看time值。有线网络一般1msWiFi在5-50ms之间。如果time忽高忽低或者丢包网络质量就有问题。traceroute——看数据包从你这里到目标经过了哪些节点。traceroute 192.168.2.100如果中间某一段延迟突然飙升或者超时问题就出在那里。ss/netstat——查看端口占用。ss -tlnp # 查看TCP监听端口 ss -ulnp # 查看UDP监听端口你的ROS2节点启动失败报地址已被占用用这个查谁占了那个端口。tcpdump——抓包神器。sudo tcpdump -i eth0 -n port 11800 # 抓eth0上11800端口的包 sudo tcpdump -i any -n host 192.168.1.100 # 抓和某台机器相关的所有包两台机器人通信断了用tcpdump一看就知道包有没有发出去、有没有收到。和机器人开发的关系ROS2的DDS通信对网络环境很敏感。几个常见场景多台机器人之间通信确保它们在同一子网防火墙放行DDS端口。如果用了VPN或者不同网段multicast可能不通需要配置DDS的unicast模式。远程调试时SSH延迟高可能是WiFi信号不好。机器人调试尽量用有线连接稳定得多。带宽问题。激光雷达一帧点云几百KB30Hz就是十几MB/s。如果网络带宽不够比如用了2.4G WiFi数据会丢。用5G WiFi或者有线。ROS2的ROS_DOMAIN_ID环境变量用来隔离同一网络上的不同机器人系统。两台机器人如果不想互相干扰设置不同的DOMAIN_ID0-232。本质上它改变的是DDS的multicast端口号。网络命名空间隔离机器人通信Linux的网络命名空间network namespace是一个高级但很实用的概念。每个命名空间有自己独立的网络栈——IP地址、路由表、防火墙规则都互相隔离。Docker容器就是利用这个机制来实现网络隔离的。在机器人开发中如果你需要在同一台机器上模拟多台机器人的网络环境可以用network namespacesudo ip netns add robot1 sudo ip netns add robot2 # 在每个命名空间里运行不同的ROS2节点 sudo ip netns exec robot1 ros2 run my_package my_node这样robot1和robot2的网络完全隔离即使它们跑在同一台物理机上。测试多机器人通信逻辑的时候特别有用不需要真的准备多台硬件。面试常见考点TCP和UDP的区别——TCP可靠、有序、面向连接UDP不可靠、无连接。ROS2的DDS底层用UDP因为实时性比可靠性更重要。传感器数据丢一帧没关系延迟才是大问题。子网掩码是什么——用来区分IP中哪部分是网络号、哪部分是主机号。/24表示前24位是网络号。同一个子网内的设备可以直接通信不同子网需要路由器转发。怎么排查两台机器之间通信延迟高——先ping看延迟和丢包率。如果延迟高用traceroute定位是哪一段的问题。检查是带宽不够还是干扰。用tcpdump确认包是否正常收发。multicast是什么ROS2为什么用它——multicast是一对多的通信方式一个节点发消息所有订阅者都能收到。ROS2用DDS做节点发现需要这种机制。如果网络不支持multicast节点之间就发现不了对方。网络配置排查流程机器人调试中网络问题很常见。一个标准的排查流程是先用ip addr看IP配置再用ping测试连通性然后用traceroute定位断点最后用ss -tlnp检查端口占用。如果是DNS问题检查/etc/resolv.conf。在ROS2多机通信场景中还需要配置ROS_DOMAIN_ID避免不同机器人之间互相干扰。给你的建议把网络基础搞扎实。IP、子网掩码、DNS、端口这几个概念要清楚。不需要成为网络工程师但至少得能排查两台机器人为什么通信不了这种问题。几个命令记牢ip addr看IPping测连通性ss -tlnp看端口tcpdump抓包。遇到疑难问题wiresharktcpdump的图形界面版可以做更深入的分析但学习成本较高按需学习。机器人项目里网络配置写成文档。哪台机器人什么IP、用了什么端口、防火墙规则是什么——这些一定要记录下来。不然换个环境重新配你会浪费一下午。上一篇第84篇 Linux进程管理——ps/top/kill和机器人进程监控下一篇预告第86篇 Vim编辑器基础——终端下改代码的基本生存技能

相关新闻

Linux进程管理——ps/top/kill和机器人进程监控

Linux进程管理——ps/top/kill和机器人进程监控

面试翻车现场上周有个候选人,简历上写着"精通Linux开发"。我问他:"你的机器人程序跑飞了,CPU占用100%,你怎么排查?"他愣了三秒,说:"重启?"我说&#…

2026/10/8 16:00:23 阅读更多 →
提升数据科学效率的6个关键工作习惯

提升数据科学效率的6个关键工作习惯

1. 数据科学工作流中的痛点与效率瓶颈数据科学项目往往涉及复杂的多环节协作,从数据清洗、特征工程到模型训练与结果可视化,每个步骤都可能成为效率黑洞。我见过太多团队在以下场景中浪费大量时间:环境配置问题导致同一份代码在不同机器上运行…

2026/10/14 0:57:35 阅读更多 →
OpenOnload用户级网络栈:绕过内核瓶颈的终极网络加速方案

OpenOnload用户级网络栈:绕过内核瓶颈的终极网络加速方案

OpenOnload用户级网络栈:绕过内核瓶颈的终极网络加速方案 【免费下载链接】onload OpenOnload high performance user-level network stack 项目地址: https://gitcode.com/gh_mirrors/on/onload 在当今高性能计算、金融交易和实时通信领域,网络延…

2026/10/6 2:45:26 阅读更多 →

最新新闻

PS5进阶玩家手册:系统设置、SSD扩容、网络调优与串流实战

PS5进阶玩家手册:系统设置、SSD扩容、网络调优与串流实战

接手的这台“AnyPS5”时,我第一反应是:这名字起得挺大。光是PS5相关的外设、存储、网络、串流、保养,随便列一列就够写好几篇长文。后来想明白了,所谓“Any PS5”,并不是什么第三方工具或改装固件,而是玩家…

2026/10/14 6:03:23 阅读更多 →
context-mode 上下文模式:从设计到落地的工程实践指南

context-mode 上下文模式:从设计到落地的工程实践指南

1. 从“context-mode”说起:一个被低估的工程概念第一次看到“context-mode”这个词,很多人会下意识地把它归到某个具体框架的配置项里,比如某个前端状态管理库的开关,或者某个后端中间件的运行模式。但如果你在一线写过几年代码&…

2026/10/14 6:03:23 阅读更多 →
大模型在工控领域的落地路径:从辅助决策到工业智能体

大模型在工控领域的落地路径:从辅助决策到工业智能体

1. 论文核心内容拆解:大模型在工控领域到底解决了什么问题1.1 数据孤岛与知识沉淀的“最后一公里”工业控制系统(ICS)这几十年攒下来的家底,大家心里都有数:现场控制器、传感器、执行机构、历史数据库、组态画面。数据…

2026/10/14 6:03:23 阅读更多 →
高性能计算集群部署实战:从硬件选型到Slurm调度全解析

高性能计算集群部署实战:从硬件选型到Slurm调度全解析

作为一个常年折腾服务器、帮人搭过各种计算环境的老运维,今天想认真聊聊高性能计算集群(HPC Cluster)部署这件事。很多朋友一听到“高性能计算”就觉得是超算中心、国家级实验室才玩的东西,离自己很远。其实这几年,随着…

2026/10/14 6:03:23 阅读更多 →
永洪科技Megrez的企业ChatBI能力与实现条件

永洪科技Megrez的企业ChatBI能力与实现条件

企业ChatBI以自然语言交互开展业务数据分析。永洪科技vividime Megrez天权支持智能问数与企业知识引导,实际应用需要准备数据范围、指标定义和访问权限,使问题具备可计算的含义。企业客户需要关注的,是产品能否理解本企业的指标定义、使用正确…

2026/10/14 6:03:23 阅读更多 →
计及需求侧响应的配电网供电能力综合评估Matlab实现

计及需求侧响应的配电网供电能力综合评估Matlab实现

供电能力评估这个方向,做配电网规划的人都不陌生。传统做法很简单:把负荷当成一个给定的“硬条件”,算主变、算线路、算N-1通过率,能带多少就是多少。但问题是,现在的负荷已经不再“硬”了——分时电价、可中断负荷、车…

2026/10/14 6:02:23 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →