创建linux端口映射连接小网
🚀 方法 1:在执行机上配置 SSH 服务端转发
这个做法是在 执行机上配置一个常驻 SSH 隧道,把大网的某个端口长期转发到小网单板的 22 端口。
👨💻 操作步骤
1️⃣ 在执行机上创建一个 systemd 服务
假设:
- 单板 IP:
192.168.1.10
- 单板 SSH 端口:
22
- 执行机开放端口:
2222
(这个是外网访问用的端口)
在执行机上编辑一个 systemd unit:
sudo nano /etc/systemd/system/soc-board-tunnel.service
内容:
[Unit]
Description=SOC Board SSH Tunnel
After=network.target[Service]
User=youruser # 执行机登录用户
ExecStart=/usr/bin/ssh -N -L 0.0.0.0:2222:192.168.1.10:22 youruser@localhost
Restart=always
RestartSec=10[Install]
WantedBy=multi-user.target
2️⃣ 启用并启动
sudo systemctl daemon-reload
sudo systemctl enable soc-board-tunnel
sudo systemctl start soc-board-tunnel
3️⃣ 检查状态
sudo systemctl status soc-board-tunnel
4️⃣ 在 MobaXterm 连接
- Host: 执行机IP
- Port: 2222
- Username: 单板用户名
💡 现在每次拖文件/SSH,MobaXterm 都会直接访问 SOC 单板。
🔥 方法 2:在执行机 sshd 里配置 “GatewayPorts”
如果你愿意修改执行机的 SSH 配置,可以让执行机的 sshd 自动充当跳板。
👨💻 操作步骤
1️⃣ 修改 /etc/ssh/sshd_config
GatewayPorts yes
AllowTcpForwarding yes
2️⃣ 重启 sshd
sudo systemctl restart sshd
3️⃣ 执行一次持久转发(后台运行)
nohup ssh -N -R 0.0.0.0:2222:192.168.1.10:22 youruser@localhost &
4️⃣ 永久化
把上面的命令加到 ~/.bashrc
或 crontab:
@reboot ssh -N -R 0.0.0.0:2222:192.168.1.10:22 youruser@localhost
💡 这样每次执行机重启后都会自动打开映射。
🏆 推荐:systemd 服务
- 稳定:执行机重启也自动恢复
- 安全:只映射指定端口
- 不改 sshd 配置
如果你有多个单板,也可以配多份 soc-board-tunnel.service
,每个监听不同端口(比如 2222、2223)。