🚀 方法 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)。