【Ubuntu】使用网线直连实现双机局域网通信的详细配置指南

张开发
2026/4/8 15:17:57 15 分钟阅读

分享文章

【Ubuntu】使用网线直连实现双机局域网通信的详细配置指南
1. 为什么需要双机直连很多朋友第一次接触双机直连时都会有疑问现在WiFi这么方便为什么还要用网线连接两台电脑其实这种连接方式在特定场景下优势非常明显。我去年帮朋友搭建本地开发环境时就深有体会当时需要频繁在两台工作站之间传输大型Docker镜像WiFi传输不仅速度慢还经常中断改用网线直连后传输速度直接从20MB/s提升到了110MB/s效率提升了5倍不止。网线直连的主要优势体现在三个方面首先是传输速度稳定千兆网卡的理论传输速度能达到125MB/s实际测试也能维持在110MB/s左右而普通WiFi6的实际传输速度通常在50-80MB/s波动其次是延迟极低在玩联机游戏或进行分布式计算时直连的延迟可以控制在1ms以内最后是安全性高数据不经过路由器等中间设备特别适合传输敏感数据。适合使用这种连接方式的典型场景包括大型文件传输视频剪辑、虚拟机镜像等局域网游戏联机分布式计算或集群测试临时搭建开发测试环境需要安全传输敏感数据的场合2. 硬件准备与连接2.1 选择合适的网线很多人不知道双机直连对网线其实是有要求的。我刚开始尝试时用过一根便宜的网线结果速度死活上不去后来换了Cat5e标准的网线才解决问题。这里分享几个选购要点线材标准至少要选择Cat5e超五类及以上规格的网线才能支持千兆传输。Cat6六类更好但普通用户用Cat5e就足够了。线序类型普通网线是直连线两头线序相同而双机直连需要使用交叉线一头是T568A另一头是T568B。不过现在大多数新款网卡都支持自动翻转Auto-MDI/MDIX用普通直连线也能工作。线材质量建议选择带屏蔽层的网线长度不要超过30米过长的网线会导致信号衰减。2.2 物理连接步骤连接过程看似简单但有几个细节容易出错先关闭两台电脑的WiFi功能避免网络优先级混乱将网线插入网口时要听到咔嗒声确保接触良好观察网口指示灯通常绿灯表示连接状态黄灯/橙灯表示数据传输如果指示灯不亮尝试换一个网口或换根网线测试我遇到过最奇葩的情况是网口积灰导致接触不良用棉签清洁后才恢复正常。所以如果连接后没反应不妨先检查这些物理连接细节。3. 第一台电脑的网络配置3.1 图形界面配置方法Ubuntu的网络配置有图形界面和命令行两种方式我们先看新手更易上手的图形界面操作1. 点击右上角网络图标 → 选择有线连接 → 点击有线设置 2. 在打开的窗口中找到对应网卡通常显示为有线连接1 3. 点击齿轮图标进入详细设置 4. 切换到IPv4标签页 5. 将方法从自动(DHCP)改为手动 6. 在地址栏输入192.168.189.13 7. 子网掩码输入255.255.255.0 8. 网关可以留空或输入192.168.189.1 9. 点击应用保存设置这里有几个实用技巧IP地址的最后一个数字建议在2-254之间选择避免使用1通常留给网关可以勾选仅对此连接有效这样设置不会影响其他网络连接如果后续需要恢复自动获取IP记得改回自动(DHCP)3.2 命令行配置方法对于习惯命令行的用户可以用nmcli工具快速配置sudo nmcli con add type ethernet con-name direct-connect ifname enp3s0 ipv4.method manual ipv4.addresses 192.168.189.13/24 ipv4.gateway 192.168.189.1这条命令做了以下几件事创建一个名为direct-connect的新连接配置指定网卡名称为enp3s0用ip a命令查看实际网卡名设置静态IP为192.168.189.13/24/24表示子网掩码255.255.255.0设置网关为192.168.189.1配置完成后用以下命令激活连接sudo nmcli con up direct-connect4. 第二台电脑的网络配置第二台电脑的配置与第一台类似但需要注意以下几点IP地址不能冲突如果第一台用了192.168.189.13第二台可以用192.168.189.14保持在同一网段但地址唯一子网掩码必须相同都是255.255.255.0网关建议相同虽然直连不需要网关但统一设置为192.168.189.1更规范图形界面配置步骤与第一台完全一致只需修改IP地址即可。命令行用户可以用sudo nmcli con add type ethernet con-name direct-connect ifname enp3s0 ipv4.method manual ipv4.addresses 192.168.189.14/24 ipv4.gateway 192.168.189.1有个常见误区是认为必须设置DNS实际上双机直连不需要DNS解析。如果设置了DNS反而可能导致网络异常建议保持DNS为空。5. 网络测试与故障排查5.1 基础连通性测试配置完成后建议按以下步骤测试在第一台电脑上ping第二台ping 192.168.189.14 -c 4正常应该看到类似输出64 bytes from 192.168.189.14: icmp_seq1 ttl64 time0.347 ms 64 bytes from 192.168.189.14: icmp_seq2 ttl64 time0.286 ms在第二台电脑上ping第一台ping 192.168.189.13 -c 4如果双向都能ping通说明基础网络已经畅通。我建议至少ping 4次-c 4参数因为首次ping可能会有较高延迟。5.2 高级测试方法除了基本的ping测试还可以用这些方法进一步验证测试传输速度在第一台电脑上运行sudo apt install iperf3 iperf3 -s然后在第二台电脑运行iperf3 -c 192.168.189.13这将测试实际传输带宽千兆网卡应该能达到900Mbps以上。检查MTU值ip link show enp3s0确保MTU值是1500标准以太网值如果发现MTU值异常可以用以下命令修改sudo ip link set enp3s0 mtu 15005.3 常见问题排查根据我的经验90%的连接问题都出在以下几个方面防火墙拦截Ubuntu默认的ufw防火墙可能会阻止ping请求sudo ufw status # 查看防火墙状态 sudo ufw disable # 临时关闭防火墙测试IP冲突用以下命令检查IP是否被占用arp-scan --interfaceenp3s0 --localnet网卡未启用ip link set enp3s0 up # 启用网卡路由问题ip route show # 检查路由表如果以上方法都无效可以尝试最彻底的排查方式 - 使用tcpdump抓包sudo tcpdump -i enp3s0 icmp这个命令会显示所有ICMP包ping使用的协议如果在发送端看到发出的包但在接收端看不到说明物理层有问题如果能看到包但没回复可能是防火墙或配置问题。6. 进阶配置与优化6.1 持久化网络配置之前的配置在重启后会丢失要永久生效有两种方法使用netplanUbuntu 18.04推荐 创建或修改/etc/netplan/01-netcfg.yaml文件network: version: 2 renderer: networkd ethernets: enp3s0: addresses: [192.168.189.13/24] gateway4: 192.168.189.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]然后应用配置sudo netplan apply修改NetworkManager配置sudo nmcli con mod direct-connect connection.autoconnect yes6.2 配置静态主机名解析虽然可以直接用IP访问但配置主机名更方便在两台电脑上都编辑/etc/hosts文件sudo nano /etc/hosts添加如下行192.168.189.13 ubuntu-pc1 192.168.189.14 ubuntu-pc2之后就可以用主机名互相ping了ping ubuntu-pc26.3 网络性能调优对于需要高性能传输的场景可以调整以下参数增加TCP窗口大小sudo sysctl -w net.ipv4.tcp_window_scaling1 sudo sysctl -w net.ipv4.tcp_rmem4096 87380 6291456 sudo sysctl -w net.ipv4.tcp_wmem4096 16384 4194304启用Jumbo Frame需要两端都支持sudo ip link set enp3s0 mtu 9000调整中断亲和性多核CPUsudo apt install irqbalance sudo service irqbalance start7. 实际应用场景示例7.1 快速文件共享配置好网络后最简单的应用就是文件共享。无需复杂配置用Python就能快速搭建临时HTTP服务器在第一台电脑上python3 -m http.server 8000 --bind 192.168.189.13然后在第二台电脑的浏览器访问http://192.168.189.13:8000对于大文件传输我推荐使用rsyncrsync -avzP /path/to/folder 192.168.189.14:/destination/path参数说明-a归档模式保留文件属性-v显示详细过程-z压缩传输-P显示进度且支持断点续传7.2 分布式计算测试我在机器学习项目中经常用双机直连做分布式训练测试。以PyTorch为例配置方法如下在两台电脑上都安装PyTorch在第一台电脑上运行import torch.distributed as dist dist.init_process_group(gloo, init_methodtcp://192.168.189.13:23456, rank0, world_size2)在第二台电脑上运行import torch.distributed as dist dist.init_process_group(gloo, init_methodtcp://192.168.189.13:23456, rank1, world_size2)这样就能建立一个简单的分布式训练环境实测比通过路由器连接快20%以上。7.3 游戏联机优化对于游戏联机除了基本的网络配置外还可以设置QoS优先级sudo tc qdisc add dev enp3s0 root handle 1: prio sudo tc filter add dev enp3s0 protocol ip parent 1: prio 1 u32 match ip dport 7777 0xffff flowid 1:1将7777替换为游戏使用的端口禁用TCP延迟确认sudo sysctl -w net.ipv4.tcp_no_delay_ack1调整socket缓冲区大小sudo sysctl -w net.core.rmem_max4194304 sudo sysctl -w net.core.wmem_max4194304

更多文章