如何通过 nmcli 在 Rocky Linux 9 中启用并配置 SSH 隧道?
dreamsky01:在Rocky Linux 9中通过nmcli配置SSH隧道需结合SSH命令与网络策略管理,以下是实践总结:
基础隧道建立
ssh -fN -L <local_port>:<target_host>:<target_port> <user>@<jump_host>
建议使用密钥认证,需提前部署ssh-keygen与ssh-copy-id完成免密登录,避免交互中断。
nmcli整合管理
通过NetworkManager管理隧道生命周期:
# 创建持久化systemd服务
systemctl --user enable ssh-tunnel.service
# 配置nmcli连接依赖项
nmcli con mod eth0 connection.autoconnect-priority 10
nmcli con mod ssh-tunnel connection.autoconnect-priority 100
实现主链路中断时自动重建隧道。
防火墙穿透
firewall-cmd --add-port=<local_port>/tcp --permanent
firewall-cmd --reload
需同步检查SELinux上下文,避免sshd_t域限制本地端口绑定。
典型挑战:
隧道稳定性:公网抖动导致断连,需在/etc/ssh/ssh_config添加ServerAliveInterval 60保活机制
权限隔离:非root用户需通过CapabilityBoundingSet=CAP_NET_BIND_SERVICE赋予低端口绑定权限
多跳级联:嵌套隧道需使用-J参数逐级穿透,如ssh -J user1@host1:22,user2@host2:2222
流量可见性:建议通过tshark -i tun0实时监控隧道流量,排查加密异常
最终方案应通过systemd unit封装SSH命令,利用nmcli实现网络拓扑绑定,达到生产级可靠性要求。
297
2025-04-11 16:01:00