明朗北街七万号·数研工坊|扎根雄安新区中关村科技园,专注受限环境下软件搭建与数据平台落地
适用场景#
如果你属于以下任一种情况,这篇对你有用:
- 刚装好操作系统,需要远程管理服务器(第 1 篇的后续)
- 内网环境多台服务器之间需要互相传文件
- 部署中间件时发现端口连不上,排查半天发现是防火墙
- 数据平台集群搭建前,需要先打通机器之间的网络
应用范围: 所有内网 Linux 服务器管理、文件传输、服务端口放行。这是搭建任何数据平台的前置技能——第 3 篇(镜像源)、第 6 篇(Docker)都会依赖它。
一、问题#
服务器装好了系统,但你不能整天坐在机房操作。你需要远程登录、传文件、开端口。但内网环境没有云控制台给你点按钮,一切都要命令行搞定。
而且内网环境有个特点:机器多、网络复杂、安全要求高。SSH 配置不好会连不上,防火墙开太大又过不了安全审计。
二、约束#
- 无公网 IP,全部走内网 IP
- 多台服务器之间需要互相访问
- 数据平台组件需要开放大量端口
- 安全要求:不能直接
systemctl stop firewalld一关了事(有些环境过不了审) - 部分服务器无显示器,只能远程操作
三、SSH:远程管理的基石#
3.1 基本配置#
SSH 服务端默认端口 22。装完系统后先确认服务在跑:
systemctl status sshd
# 没装的话
yum install -y openssh-server
systemctl enable --now sshdplaintext客户端连接:
ssh root@192.168.1.100plaintext3.2 密钥登录:内网运维的正确姿势#
密码登录在内网环境有两大痛点:一是每次都要输密码,二是多台机器密码管理混乱。密钥登录是标准做法。
生成密钥对(在本地机器上):
ssh-keygen -t ed25519 -C "deploy@internal"
# 一路回车,会在 ~/.ssh/ 下生成 id_ed25519(私钥)和 id_ed25519.pub(公钥)plaintext复制公钥到目标服务器:
ssh-copy-id root@192.168.1.100
# 首次会要求输入密码,之后就可以免密登录plaintext验证:
ssh root@192.168.1.100
# 不再要求密码,直接登录成功plaintext禁用密码登录(安全加固):
编辑 /etc/ssh/sshd_config:
PasswordAuthentication noplaintext然后重启 SSH:
systemctl restart sshdplaintext⚠️ 禁用密码登录前,务必确认密钥已经能正常登录。否则你会把自己锁在门外。
3.3 内网 SSH 的两个坑#
坑 1:连接特别慢
症状:输入 ssh 命令后要等 5-10 秒才提示输密码。 原因:DNS 反向解析超时。
解决:编辑 /etc/ssh/sshd_config,加一行:
UseDNS noplaintext坑 2:局域网内多台机器 IP 难记
在本地 ~/.ssh/config 里配置别名:
Host node1
HostName 192.168.1.100
User root
Port 22
Host node2
HostName 192.168.1.101
User rootplaintext之后直接 ssh node1 就行。
四、SCP:内网传文件#
scp 基于 SSH,无需额外配置,装好 SSH 就能用。
4.1 基本用法#
# 本地上传到服务器
scp ./app.tar.gz root@192.168.1.100:/opt/
# 服务器下载到本地
scp root@192.168.1.100:/opt/backup.sql ./
# 传目录加 -r
scp -r ./configs/ root@192.168.1.100:/etc/
# 指定端口
scp -P 22022 ./app.tar.gz root@192.168.1.100:/opt/plaintext4.2 大文件传输的坑#
坑:传大文件(几个 G 的 ISO、镜像包)断断续续
scp 不支持断点续传。传一半断了只能重来。解决方式:
方案 A:用 rsync(推荐)
rsync -avP ./big-file.iso root@192.168.1.100:/opt/
# -P = --partial + --progress,支持断点续传plaintext方案 B:分卷压缩再传
# 本地分卷
tar czf - ./data/ | split -b 2G - part-
# 传所有分卷
scp part-* root@192.168.1.100:/opt/
# 远端合并解压
cat part-* | tar xzf -plaintext4.3 内网传输加速技巧#
- 内网带宽通常足够,瓶颈常在磁盘 IO。用
rsync -z压缩传输能显著加速(针对文本类文件) - 多文件并行传输:
rsync加-P后多开几个终端窗口分别传不同目录
五、防火墙:放行还是不开?#
5.1 先搞清楚你面对的是哪一套#
CentOS/RHEL 系 7+ 用 firewalld,6 及以下用 iptables。openEuler、KylinOS 默认都是 firewalld。先看:
systemctl status firewalldplaintext5.2 firewalld 基本操作#
# 查看当前放行规则
firewall-cmd --list-all
# 放行一个端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
# 放行一个服务(如果内置了)
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reloadplaintext⚠️ 记得
--permanent后一定要--reload,否则重启后失效。
5.3 数据平台常见端口清单(速查)#
| 组件 | 端口 | 协议 | 放行说明 |
|---|---|---|---|
| SSH | 22 | TCP | 必须放行 |
| MySQL | 3306 | TCP | 应用服务器 → 数据库 |
| PostgreSQL | 5432 | TCP | 应用服务器 → 数据库 |
| Redis | 6379 | TCP | 应用服务器 → 缓存 |
| Kafka | 9092 | TCP | 生产者/消费者 |
| Nginx | 80/443 | TCP | 对外服务 |
| Flink WebUI | 8081 | TCP | 运维访问 |
| Spark UI | 4040 | TCP | 运维访问 |
| Doris FE | 8030/9030 | TCP | FE 管理口/查询口 |
| Grafana | 3000 | TCP | 运维访问 |
| Prometheus/VM | 9090/8428 | TCP | 监控采集 |
| 节点间通信 | 全开 | TCP | 集群内部 |
内网集群内部通信端口:如果安全要求允许,集群节点之间建议直接放行整个网段:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
firewall-cmd --reloadplaintext5.4 什么时候可以关防火墙#
内网数据平台环境,如果集群规模小、无外部访问、安全审计不严,调试阶段直接关掉省心:
systemctl stop firewalld
systemctl disable firewalldplaintext但如果你要过等保/安全审计,就用上面的按需放行方式,并保留完整的端口清单文档——审计时直接给清单,比「我关了防火墙」体面得多。
六、总结#
| 技能 | 核心命令 | 记住一点 |
|---|---|---|
| SSH 登录 | ssh-keygen + ssh-copy-id | 密钥登录,禁用密码 |
| SSH 调优 | UseDNS no | 解决连接慢 |
| 文件传输 | rsync -avP | 断点续传,比 scp 可靠 |
| 防火墙放行 | firewall-cmd --permanent --add-port=xxx/tcp | 加 --reload |
| 集群互通 | 放行整个内网网段 | 省心且可审计 |
内网环境下的第一公里打通,就是这三件事:SSH 能登、文件能传、端口能通。 搞定这三样,后面搭镜像源、装 Docker、部署数据平台才有基础。
本文首发于掘金 · 作者:七万号 扎根雄安新区中关村科技园,专注受限环境下软件搭建与数据平台落地